[INFO] cloning repository https://github.com/Logicalshift/flo_scene
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Logicalshift/flo_scene" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLogicalshift%2Fflo_scene", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLogicalshift%2Fflo_scene'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 642452f19a4cae1e248396543f73920cf248a53d
[INFO] fixing Logicalshift/flo_scene against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLogicalshift%2Fflo_scene" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Logicalshift/flo_scene
[INFO] finished tweaking git repo https://github.com/Logicalshift/flo_scene
[INFO] tweaked toml for git repo https://github.com/Logicalshift/flo_scene written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Logicalshift/flo_scene on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Logicalshift/flo_scene already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b4a9433ac1919cc3902a6ce306e6b2f7f4d748346f9dafdf07ae833c38156cd0
[INFO] running `Command { std: "docker" "start" "b4a9433ac1919cc3902a6ce306e6b2f7f4d748346f9dafdf07ae833c38156cd0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b4a9433ac1919cc3902a6ce306e6b2f7f4d748346f9dafdf07ae833c38156cd0" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b4a9433ac1919cc3902a6ce306e6b2f7f4d748346f9dafdf07ae833c38156cd0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b4a9433ac1919cc3902a6ce306e6b2f7f4d748346f9dafdf07ae833c38156cd0" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating scene/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating pipe/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating wasm/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating guest-nostd/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]     Checking lock_api v0.4.12
[INFO] [stderr]    Compiling semver v1.0.26
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]    Compiling getrandom v0.3.2
[INFO] [stderr]     Checking hash32 v0.2.1
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking cobs v0.2.3
[INFO] [stderr]     Checking spin v0.10.0
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking socket2 v0.5.9
[INFO] [stderr]     Checking smallvec v1.15.0
[INFO] [stderr]    Compiling prettyplease v0.2.32
[INFO] [stderr]     Checking miniz_oxide v0.8.8
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]    Compiling jobserver v0.1.33
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling heapless v0.7.17
[INFO] [stderr]    Compiling cc v1.2.19
[INFO] [stderr]    Compiling litemap v0.7.5
[INFO] [stderr]    Compiling writeable v0.5.5
[INFO] [stderr]     Checking flate2 v1.1.1
[INFO] [stderr]    Compiling icu_locid_transform_data v1.5.1
[INFO] [stderr]     Checking indexmap v2.9.0
[INFO] [stderr]    Compiling icu_properties_data v1.5.1
[INFO] [stderr]    Compiling icu_normalizer_data v1.5.1
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking simdutf8 v0.1.5
[INFO] [stderr]    Compiling rustix v1.0.5
[INFO] [stderr]    Compiling target-lexicon v0.12.16
[INFO] [stderr]    Compiling glob v0.3.2
[INFO] [stderr]    Compiling utf16_iter v1.0.5
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]    Compiling cranelift-isle v0.110.2
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling write16 v1.0.0
[INFO] [stderr]     Checking linux-raw-sys v0.9.4
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]    Compiling rustls-pki-types v1.11.0
[INFO] [stderr]    Compiling cranelift-codegen-shared v0.110.3
[INFO] [stderr]    Compiling bitflags v2.9.0
[INFO] [stderr]    Compiling bytecheck v0.6.12
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling object v0.36.7
[INFO] [stderr]    Compiling adler2 v2.0.0
[INFO] [stderr]     Checking tinyvec v1.9.0
[INFO] [stderr]    Compiling cranelift-codegen-meta v0.110.3
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling zstd-sys v2.0.15+zstd.1.5.7
[INFO] [stderr]    Compiling onig_sys v69.8.1
[INFO] [stderr]    Compiling lzma-sys v0.1.20
[INFO] [stderr]    Compiling bzip2-sys v0.1.13+1.0.8
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling corosensei v0.2.1
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]    Compiling rustls v0.23.26
[INFO] [stderr]    Compiling ptr_meta_derive v0.1.4
[INFO] [stderr]     Checking ptr_meta v0.1.4
[INFO] [stderr]    Compiling enum-iterator-derive v0.7.0
[INFO] [stderr]    Compiling bytecheck_derive v0.6.12
[INFO] [stderr]    Compiling crc-catalog v2.4.0
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling percent-encoding v2.3.1
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]     Checking tokio v1.44.2
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.7.5
[INFO] [stderr]    Compiling ptr_meta_derive v0.3.0
[INFO] [stderr]    Compiling bytecheck_derive v0.8.1
[INFO] [stderr]     Checking ptr_meta v0.3.0
[INFO] [stderr]     Checking rancor v0.1.0
[INFO] [stderr]    Compiling zerovec v0.10.4
[INFO] [stderr]    Compiling munge_macro v0.4.3
[INFO] [stderr]     Checking bytecheck v0.8.1
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking rend v0.5.2
[INFO] [stderr]     Checking munge v0.4.3
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]    Compiling enumset_derive v0.10.0
[INFO] [stderr]    Compiling rkyv_derive v0.8.10
[INFO] [stderr]    Compiling tinystr v0.7.6
[INFO] [stderr]    Compiling icu_collections v1.5.0
[INFO] [stderr]    Compiling icu_locid v1.5.0
[INFO] [stderr]    Compiling zeroize v1.8.1
[INFO] [stderr]     Checking cranelift-bitset v0.110.3
[INFO] [stderr]     Checking bumpalo v3.17.0
[INFO] [stderr]    Compiling clap_derive v4.5.32
[INFO] [stderr]     Checking enumset v1.1.5
[INFO] [stderr]     Checking sha2 v0.10.8
[INFO] [stderr]    Compiling icu_provider v1.5.0
[INFO] [stderr]     Checking twox-hash v1.6.3
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]     Checking addr2line v0.24.2
[INFO] [stderr]    Compiling icu_locid_transform v1.5.0
[INFO] [stderr]     Checking cranelift-entity v0.110.2
[INFO] [stderr]     Checking onig v6.4.0
[INFO] [stderr]    Compiling bon-macros v3.6.1
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]     Checking serde_json v1.0.140
[INFO] [stderr]     Checking uuid v1.16.0
[INFO] [stderr]    Compiling icu_properties v1.5.1
[INFO] [stderr]     Checking postcard v1.1.1
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking flo_scene_guest v0.2.1 (/opt/rustwide/workdir/guest-nostd)
[INFO] [stderr]    Migrating guest-nostd/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]    Compiling rustls-webpki v0.103.1
[INFO] [stderr]     Checking rkyv v0.8.10
[INFO] [stderr]    Compiling form_urlencoded v1.2.1
[INFO] [stderr]     Checking terminal_size v0.4.2
[INFO] [stderr]     Checking clap_builder v4.5.37
[INFO] [stderr]    Compiling derive_more v0.99.19
[INFO] [stderr]    Compiling crc v3.2.1
[INFO] [stderr]     Checking enum-iterator v0.7.0
[INFO] [stderr]        Fixed guest-nostd/src/imports.rs (1 fix)
[INFO] [stderr]        Fixed guest-nostd/src/runtime/serialization_context.rs (4 fixes)
[INFO] [stderr]        Fixed guest-nostd/src/runtime/context.rs (1 fix)
[INFO] [stderr]        Fixed guest-nostd/src/exports.rs (13 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> guest-nostd/src/runtime/serialization_context.rs:246:41
[INFO] [stdout]     |
[INFO] [stdout] 243 |                     let _close_stream = close_stream.clone();
[INFO] [stdout]     |                         -------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `_close_stream` calls a custom destructor
[INFO] [stdout]     |                         `_close_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 246 |                     if let Some(core) = core.upgrade() {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                         up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 249 |                 }.boxed()
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `_close_stream` invokes this custom destructor
[INFO] [stdout]    --> guest-nostd/src/runtime/serialization_context.rs:38:1
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl Drop for CloseStream {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed guest-nostd/src/runtime/core.rs (4 fixes)
[INFO] [stdout] warning: `impl Unpin + futures::Sink<TMessageType, Error = scene_send_error::SceneSendError<std::vec::Vec<u8>>>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> guest-nostd/src/runtime/context.rs:48:81
[INFO] [stdout]    |
[INFO] [stdout] 48 | ...pl ToHostStreamTarget) -> Result<impl Unpin + Sink<TMessageType, Error=SceneSendError<Vec<u8>>>, ConnectionError>
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> guest-nostd/src/runtime/context.rs:48:31
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn send<TMessageType>(&self, target: impl ToHostStreamTarget) -> Result<impl Unpin + Sink<TMessageType, Error=SceneSendError...
[INFO] [stdout]    |                               ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]   --> guest-nostd/src/runtime/context.rs:48:46
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn send<TMessageType>(&self, target: impl ToHostStreamTarget) -> Result<impl Unpin + Sink<TMessageType, Error=SceneSendError...
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 48 -     pub fn send<TMessageType>(&self, target: impl ToHostStreamTarget) -> Result<impl Unpin + Sink<TMessageType, Error=SceneSendError<Vec<u8>>>, ConnectionError>
[INFO] [stdout] 48 +     pub fn send<TMessageType, T: ToHostStreamTarget>(&self, target: T) -> Result<impl Unpin + Sink<TMessageType, Error=SceneSendError<Vec<u8>>> + use<TMessageType, T>, ConnectionError>
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed guest-nostd/src/runtime/input_stream.rs (1 fix)
[INFO] [stderr]        Fixed guest-nostd/src/guest_types/sharing_types.rs (1 fix)
[INFO] [stderr]     Checking flo_scene v0.2.1 (/opt/rustwide/workdir/scene)
[INFO] [stderr]    Migrating scene/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]    Compiling deranged v0.4.0
[INFO] [stderr]    Compiling icu_normalizer v1.5.0
[INFO] [stderr]    Compiling cranelift-codegen v0.110.2
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling xz2 v0.1.7
[INFO] [stderr]     Checking unicode-normalization v0.1.24
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling idna_adapter v1.2.0
[INFO] [stderr]    Compiling idna v1.0.3
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]    Compiling libloading v0.8.6
[INFO] [stderr]     Checking more-asserts v0.2.2
[INFO] [stderr]     Checking fallible-iterator v0.3.0
[INFO] [stderr]    Compiling time-core v0.1.4
[INFO] [stderr]    Compiling simd-adler32 v0.3.7
[INFO] [stderr]     Checking arbitrary v1.4.1
[INFO] [stderr]    Compiling zip v2.6.1
[INFO] [stderr]     Checking deunicode v1.6.1
[INFO] [stderr]     Checking xxhash-rust v0.8.15
[INFO] [stderr]     Checking slice-group-by v0.3.1
[INFO] [stderr]    Compiling bindgen v0.70.1
[INFO] [stderr]    Compiling wasm-encoder v0.229.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]     Checking regalloc2 v0.9.3
[INFO] [stderr]    Compiling time v0.3.41
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling zopfli v0.8.2
[INFO] [stderr]     Checking cranelift-control v0.110.3
[INFO] [stderr]     Checking wasmer-types v5.0.4
[INFO] [stderr]    Compiling lzma-rs v0.3.0
[INFO] [stderr]     Checking syntect v5.2.0
[INFO] [stderr]     Checking slug v0.1.6
[INFO] [stderr]     Checking gimli v0.28.1
[INFO] [stderr]    Compiling url v2.5.4
[INFO] [stderr]    Compiling xattr v1.5.0
[INFO] [stderr]     Checking caseless v0.2.2
[INFO] [stderr]    Compiling pbkdf2 v0.12.2
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]        Fixed scene/src/host/commands/launcher.rs (2 fixes)
[INFO] [stderr]        Fixed scene/src/host/output_sink.rs (6 fixes)
[INFO] [stderr]        Fixed scene/src/host/serialization.rs (3 fixes)
[INFO] [stderr]        Fixed scene/src/host/programs/control.rs (3 fixes)
[INFO] [stderr]        Fixed scene/src/host/filter.rs (2 fixes)
[INFO] [stderr]        Fixed scene/src/host/programs/test.rs (1 fix)
[INFO] [stderr]        Fixed scene/src/host/stream_id.rs (15 fixes)
[INFO] [stderr]        Fixed scene/src/host/scene.rs (2 fixes)
[INFO] [stderr]        Fixed scene/src/host/scene_core.rs (6 fixes)
[INFO] [stderr]     Checking ruzstd v0.5.0
[INFO] [stderr]        Fixed scene/src/host/scene_context.rs (5 fixes)
[INFO] [stderr]        Fixed scene/src/host/commands/dispatcher.rs (2 fixes)
[INFO] [stderr]        Fixed scene/src/guest/host_subprogram.rs (1 fix)
[INFO] [stderr]        Fixed scene/src/host/input_stream.rs (4 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/scene_context.rs:277:27
[INFO] [stdout]     |
[INFO] [stdout] 276 |                     let mut response_input_stream = response_input_stream;
[INFO] [stdout]     |                         -------------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `response_input_stream` calls a custom destructor
[INFO] [stdout]     |                         `response_input_stream` will be dropped later as of Edition 2024
[INFO] [stdout] 277 |                     match target_connection.send(query.with_new_target(task_program_id.into())).await { Ok(()) => {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                           |                                                                     |
[INFO] [stdout]     |                           |                                                                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                           |                                                                     up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 299 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `response_input_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/input_stream.rs:531:1
[INFO] [stdout]     |
[INFO] [stdout] 531 | impl<TMessage> Drop for InputStream<TMessage> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/scene_context.rs:277:97
[INFO] [stdout]     |
[INFO] [stdout] 276 |                     let mut response_input_stream = response_input_stream;
[INFO] [stdout]     |                         -------------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `response_input_stream` calls a custom destructor
[INFO] [stdout]     |                         `response_input_stream` will be dropped later as of Edition 2024
[INFO] [stdout] 277 |                     match target_connection.send(query.with_new_target(task_program_id.into())).await { Ok(()) => {
[INFO] [stdout]     |                                                                                                 ^^^^^
[INFO] [stdout]     |                                                                                                 |
[INFO] [stdout]     |                                                                                                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                                                 up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 299 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `response_input_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/input_stream.rs:531:1
[INFO] [stdout]     |
[INFO] [stdout] 531 | impl<TMessage> Drop for InputStream<TMessage> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/programs/control.rs:274:27
[INFO] [stdout]     |
[INFO] [stdout] 267 | ... let Some(request) = input.next().await {
[INFO] [stdout]     |              -------                 -----
[INFO] [stdout]     |              |                       |
[INFO] [stdout]     |              |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              |                       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |              `request` calls a custom destructor
[INFO] [stdout]     |              `request` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 272 | ...   Control(Start(start_fn)) => {
[INFO] [stdout]     |                     --------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `start_fn` calls a custom destructor
[INFO] [stdout]     |                     `start_fn` will be dropped later as of Edition 2024
[INFO] [stdout] 273 | ...       // Downcast the start function and call it
[INFO] [stdout] 274 | ...       match scene_core.upgrade() { Some(scene_core) => {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#22`
[INFO] [stdout]     |                 up until Edition 2021 `#22` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 281 | ...   },
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] 282 | ...
[INFO] [stdout] 283 | ...   Control(Connect(source, target, stream)) => {
[INFO] [stdout]     |                       ------  ------  ------
[INFO] [stdout]     |                       |       |       |
[INFO] [stdout]     |                       |       |       `stream` calls a custom destructor
[INFO] [stdout]     |                       |       |       `stream` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       |       `target` calls a custom destructor
[INFO] [stdout]     |                       |       `target` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       `source` calls a custom destructor
[INFO] [stdout]     |                       `source` will be dropped later as of Edition 2024
[INFO] [stdout] 284 | ...       match scene_core.upgrade() { Some(scene_core) => {
[INFO] [stdout]     |                                             ----------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `scene_core` calls a custom destructor
[INFO] [stdout]     |                                             `scene_core` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 289 | ...                   update_subscribers.send(SceneUpdate::FailedConnection(error, source, target, stream)).await;
[INFO] [stdout]     |                       -------------------------------------------------------------------------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `__awaitee` calls a custom destructor
[INFO] [stdout]     |                       `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 299 | ...       if let Some(scene_core) = scene_core.upgrade() {
[INFO] [stdout]     |                       ----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 300 | ...           let waker = {
[INFO] [stdout] 301 | ...               let program     = scene_core.lock().unwrap().get_sub_program(sub_program_id);
[INFO] [stdout]     |                                     --------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                     `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 302 | ...               let input_core  = scene_core.lock().unwrap().get_input_stream_core(sub_program_id);
[INFO] [stdout]     |                                     --------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                     `#4` will be dropped later as of Edition 2024
[INFO] [stdout] 303 | ...
[INFO] [stdout] 304 | ...               match (program, input_core) { (Some(program), Some(input_core)) => {
[INFO] [stdout]     |                                                       -------        ----------
[INFO] [stdout]     |                                                       |              |
[INFO] [stdout]     |                                                       |              `input_core` calls a custom destructor
[INFO] [stdout]     |                                                       |              `input_core` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                       `program` calls a custom destructor
[INFO] [stdout]     |                                                       `program` will be dropped later as of Edition 2024
[INFO] [stdout] 305 | ...                   let input_stream_id = program.lock().unwrap().input_stream_id();
[INFO] [stdout]     |                           ---------------   -----------------------
[INFO] [stdout]     |                           |                 |
[INFO] [stdout]     |                           |                 this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                           |                 `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |                           `input_stream_id` calls a custom destructor
[INFO] [stdout]     |                           `input_stream_id` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 324 | ...       let wait_for_idle   = SceneProgramFn::new(idle_program, move |input: InputStream<IdleNotification>, context| async move {
[INFO] [stdout]     |               -------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `wait_for_idle` calls a custom destructor
[INFO] [stdout]     |               `wait_for_idle` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 345 | ...       if let Some(scene_core) = scene_core.upgrade() {
[INFO] [stdout]     |                       ----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                       `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 346 | ...           // Tell the core to stop (note: awaits won't return at this point!)
[INFO] [stdout] 347 | ...           let wakers = scene_core.lock().unwrap().stop();
[INFO] [stdout]     |                            --------------------------
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                            `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 359 | ...       if let (Ok(mut subscriber), Some(scene_core)) = (context.send(target), scene_core.upgrade()) {
[INFO] [stdout]     |                      --------------        ----------
[INFO] [stdout]     |                      |                     |
[INFO] [stdout]     |                      |                     this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                      |                     `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |                      `subscriber` calls a custom destructor
[INFO] [stdout]     |                      `subscriber` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 363 | ...               let subprogram_core = scene_core.lock().unwrap().get_sub_program(prog);
[INFO] [stdout]     |                       ---------------   --------------------------
[INFO] [stdout]     |                       |                 |
[INFO] [stdout]     |                       |                 this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                       |                 `#9` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       `subprogram_core` calls a custom destructor
[INFO] [stdout]     |                       `subprogram_core` will be dropped later as of Edition 2024
[INFO] [stdout] 364 | ...
[INFO] [stdout] 365 | ...               if let Some(subprogram_core) = subprogram_core {
[INFO] [stdout]     |                               ---------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                               `#10` will be dropped later as of Edition 2024
[INFO] [stdout] 366 | ...                   let input_stream_id = subprogram_core.lock().unwrap().input_stream_id.clone();
[INFO] [stdout]     |                                             -------------------------------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                                             `#11` will be dropped later as of Edition 2024
[INFO] [stdout] 367 | ...
[INFO] [stdout] 368 | ...                   subscriber.send(SceneUpdate::Started(prog, input_stream_id)).await.ok();
[INFO] [stdout]     |                       ------------------------------------------------------------------
[INFO] [stdout]     |                       |                                                            |
[INFO] [stdout]     |                       |                                                            this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                       |                                                            `#13` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                       `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 374 | ...               subscriber.send(SceneUpdate::Connected(*source, *target, stream.clone())).await.ok();
[INFO] [stdout]     |                   -------------------------------------------------------------------------------
[INFO] [stdout]     |                   |                                                                         |
[INFO] [stdout]     |                   |                                                                         this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                   |                                                                         `#15` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                   `#14` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 381 | ...       if let (Ok(mut query_response), Some(scene_core)) = (context.send(target), scene_core.upgrade()) {
[INFO] [stdout]     |                      ------------------        ----------
[INFO] [stdout]     |                      |                         |
[INFO] [stdout]     |                      |                         this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                      |                         `#16` will be dropped later as of Edition 2024
[INFO] [stdout]     |                      `query_response` calls a custom destructor
[INFO] [stdout]     |                      `query_response` will be dropped later as of Edition 2024
[INFO] [stdout] 382 | ...           // Build a response out of the current state of the scene
[INFO] [stdout] 383 | ...           let running_subprograms = scene_core.lock().unwrap().get_running_subprograms();
[INFO] [stdout]     |                                         --------------------------
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                                         `#17` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 386 | ...           let active_connections =
[INFO] [stdout]     |                   ------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `active_connections` calls a custom destructor
[INFO] [stdout]     |                   `active_connections` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 430 | ...           query_response.send(QueryResponse::with_stream(stream::iter(response))).await.ok();
[INFO] [stdout]     |               -----------------------------------------------------------------------------
[INFO] [stdout]     |               |                                                                       |
[INFO] [stdout]     |               |                                                                       this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |               |                                                                       `#19` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |               `#18` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 439 | ...           SceneUpdate::Disconnected(source, stream_id)        => { active_connections.remove(&(*source, stream_id.clone())); },
[INFO] [stdout]     |                                                                                                   ----------------------------
[INFO] [stdout]     |                                                                                                   |
[INFO] [stdout]     |                                                                                                   this value will be stored in a temporary; let us call it `#20`
[INFO] [stdout]     |                                                                                                   `#20` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 446 | ...       update_subscribers.send(update).await;
[INFO] [stdout]     |           -------------------------------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#21`
[INFO] [stdout]     |           `#21` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#22` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `request` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `start_fn` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `source` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `scene_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `program` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `input_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `input_stream_id` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `wait_for_idle` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `subscriber` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `subscriber` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `subscriber` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `subprogram_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `query_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `query_response` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `query_response` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#17` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `active_connections` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#18` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#20` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/programs/control.rs:284:27
[INFO] [stdout]     |
[INFO] [stdout] 267 | ... let Some(request) = input.next().await {
[INFO] [stdout]     |              -------                 -----
[INFO] [stdout]     |              |                       |
[INFO] [stdout]     |              |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              |                       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |              `request` calls a custom destructor
[INFO] [stdout]     |              `request` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 272 | ...   Control(Start(start_fn)) => {
[INFO] [stdout]     |                     --------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `start_fn` calls a custom destructor
[INFO] [stdout]     |                     `start_fn` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 283 | ...   Control(Connect(source, target, stream)) => {
[INFO] [stdout]     |                       ------  ------  ------
[INFO] [stdout]     |                       |       |       |
[INFO] [stdout]     |                       |       |       `stream` calls a custom destructor
[INFO] [stdout]     |                       |       |       `stream` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       |       `target` calls a custom destructor
[INFO] [stdout]     |                       |       `target` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       `source` calls a custom destructor
[INFO] [stdout]     |                       `source` will be dropped later as of Edition 2024
[INFO] [stdout] 284 | ...       match scene_core.upgrade() { Some(scene_core) => {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^        ----------
[INFO] [stdout]     |                 |                           |
[INFO] [stdout]     |                 |                           `scene_core` calls a custom destructor
[INFO] [stdout]     |                 |                           `scene_core` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#22`
[INFO] [stdout]     |                 up until Edition 2021 `#22` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 289 | ...                   update_subscribers.send(SceneUpdate::FailedConnection(error, source, target, stream)).await;
[INFO] [stdout]     |                       -------------------------------------------------------------------------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `__awaitee` calls a custom destructor
[INFO] [stdout]     |                       `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 295 | ...   },
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout] 299 | ...       if let Some(scene_core) = scene_core.upgrade() {
[INFO] [stdout]     |                       ----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 300 | ...           let waker = {
[INFO] [stdout] 301 | ...               let program     = scene_core.lock().unwrap().get_sub_program(sub_program_id);
[INFO] [stdout]     |                                     --------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                     `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 302 | ...               let input_core  = scene_core.lock().unwrap().get_input_stream_core(sub_program_id);
[INFO] [stdout]     |                                     --------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                     `#4` will be dropped later as of Edition 2024
[INFO] [stdout] 303 | ...
[INFO] [stdout] 304 | ...               match (program, input_core) { (Some(program), Some(input_core)) => {
[INFO] [stdout]     |                                                       -------        ----------
[INFO] [stdout]     |                                                       |              |
[INFO] [stdout]     |                                                       |              `input_core` calls a custom destructor
[INFO] [stdout]     |                                                       |              `input_core` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                       `program` calls a custom destructor
[INFO] [stdout]     |                                                       `program` will be dropped later as of Edition 2024
[INFO] [stdout] 305 | ...                   let input_stream_id = program.lock().unwrap().input_stream_id();
[INFO] [stdout]     |                           ---------------   -----------------------
[INFO] [stdout]     |                           |                 |
[INFO] [stdout]     |                           |                 this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                           |                 `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |                           `input_stream_id` calls a custom destructor
[INFO] [stdout]     |                           `input_stream_id` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 324 | ...       let wait_for_idle   = SceneProgramFn::new(idle_program, move |input: InputStream<IdleNotification>, context| async move {
[INFO] [stdout]     |               -------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `wait_for_idle` calls a custom destructor
[INFO] [stdout]     |               `wait_for_idle` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 345 | ...       if let Some(scene_core) = scene_core.upgrade() {
[INFO] [stdout]     |                       ----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                       `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 346 | ...           // Tell the core to stop (note: awaits won't return at this point!)
[INFO] [stdout] 347 | ...           let wakers = scene_core.lock().unwrap().stop();
[INFO] [stdout]     |                            --------------------------
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                            `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 359 | ...       if let (Ok(mut subscriber), Some(scene_core)) = (context.send(target), scene_core.upgrade()) {
[INFO] [stdout]     |                      --------------        ----------
[INFO] [stdout]     |                      |                     |
[INFO] [stdout]     |                      |                     this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                      |                     `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |                      `subscriber` calls a custom destructor
[INFO] [stdout]     |                      `subscriber` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 363 | ...               let subprogram_core = scene_core.lock().unwrap().get_sub_program(prog);
[INFO] [stdout]     |                       ---------------   --------------------------
[INFO] [stdout]     |                       |                 |
[INFO] [stdout]     |                       |                 this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                       |                 `#9` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       `subprogram_core` calls a custom destructor
[INFO] [stdout]     |                       `subprogram_core` will be dropped later as of Edition 2024
[INFO] [stdout] 364 | ...
[INFO] [stdout] 365 | ...               if let Some(subprogram_core) = subprogram_core {
[INFO] [stdout]     |                               ---------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                               `#10` will be dropped later as of Edition 2024
[INFO] [stdout] 366 | ...                   let input_stream_id = subprogram_core.lock().unwrap().input_stream_id.clone();
[INFO] [stdout]     |                                             -------------------------------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                                             `#11` will be dropped later as of Edition 2024
[INFO] [stdout] 367 | ...
[INFO] [stdout] 368 | ...                   subscriber.send(SceneUpdate::Started(prog, input_stream_id)).await.ok();
[INFO] [stdout]     |                       ------------------------------------------------------------------
[INFO] [stdout]     |                       |                                                            |
[INFO] [stdout]     |                       |                                                            this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                       |                                                            `#13` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                       `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 374 | ...               subscriber.send(SceneUpdate::Connected(*source, *target, stream.clone())).await.ok();
[INFO] [stdout]     |                   -------------------------------------------------------------------------------
[INFO] [stdout]     |                   |                                                                         |
[INFO] [stdout]     |                   |                                                                         this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                   |                                                                         `#15` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                   `#14` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 381 | ...       if let (Ok(mut query_response), Some(scene_core)) = (context.send(target), scene_core.upgrade()) {
[INFO] [stdout]     |                      ------------------        ----------
[INFO] [stdout]     |                      |                         |
[INFO] [stdout]     |                      |                         this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                      |                         `#16` will be dropped later as of Edition 2024
[INFO] [stdout]     |                      `query_response` calls a custom destructor
[INFO] [stdout]     |                      `query_response` will be dropped later as of Edition 2024
[INFO] [stdout] 382 | ...           // Build a response out of the current state of the scene
[INFO] [stdout] 383 | ...           let running_subprograms = scene_core.lock().unwrap().get_running_subprograms();
[INFO] [stdout]     |                                         --------------------------
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                                         `#17` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 386 | ...           let active_connections =
[INFO] [stdout]     |                   ------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `active_connections` calls a custom destructor
[INFO] [stdout]     |                   `active_connections` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 430 | ...           query_response.send(QueryResponse::with_stream(stream::iter(response))).await.ok();
[INFO] [stdout]     |               -----------------------------------------------------------------------------
[INFO] [stdout]     |               |                                                                       |
[INFO] [stdout]     |               |                                                                       this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |               |                                                                       `#19` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |               `#18` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 439 | ...           SceneUpdate::Disconnected(source, stream_id)        => { active_connections.remove(&(*source, stream_id.clone())); },
[INFO] [stdout]     |                                                                                                   ----------------------------
[INFO] [stdout]     |                                                                                                   |
[INFO] [stdout]     |                                                                                                   this value will be stored in a temporary; let us call it `#20`
[INFO] [stdout]     |                                                                                                   `#20` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 446 | ...       update_subscribers.send(update).await;
[INFO] [stdout]     |           -------------------------------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#21`
[INFO] [stdout]     |           `#21` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#22` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `request` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `start_fn` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `source` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `scene_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `program` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `input_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `input_stream_id` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `wait_for_idle` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `subscriber` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `subscriber` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `subscriber` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `subprogram_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `query_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `query_response` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `query_response` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#17` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `active_connections` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#18` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#20` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/programs/control.rs:299:47
[INFO] [stdout]     |
[INFO] [stdout] 267 | ... let Some(request) = input.next().await {
[INFO] [stdout]     |              -------                 -----
[INFO] [stdout]     |              |                       |
[INFO] [stdout]     |              |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              |                       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |              `request` calls a custom destructor
[INFO] [stdout]     |              `request` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 272 | ...   Control(Start(start_fn)) => {
[INFO] [stdout]     |                     --------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `start_fn` calls a custom destructor
[INFO] [stdout]     |                     `start_fn` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 283 | ...   Control(Connect(source, target, stream)) => {
[INFO] [stdout]     |                       ------  ------  ------
[INFO] [stdout]     |                       |       |       |
[INFO] [stdout]     |                       |       |       `stream` calls a custom destructor
[INFO] [stdout]     |                       |       |       `stream` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       |       `target` calls a custom destructor
[INFO] [stdout]     |                       |       `target` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       `source` calls a custom destructor
[INFO] [stdout]     |                       `source` will be dropped later as of Edition 2024
[INFO] [stdout] 284 | ...       match scene_core.upgrade() { Some(scene_core) => {
[INFO] [stdout]     |                                             ----------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `scene_core` calls a custom destructor
[INFO] [stdout]     |                                             `scene_core` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 289 | ...                   update_subscribers.send(SceneUpdate::FailedConnection(error, source, target, stream)).await;
[INFO] [stdout]     |                       -------------------------------------------------------------------------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `__awaitee` calls a custom destructor
[INFO] [stdout]     |                       `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 299 | ...       if let Some(scene_core) = scene_core.upgrade() {
[INFO] [stdout]     |                       ----------    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |             |
[INFO] [stdout]     |                       |             this value will be stored in a temporary; let us call it `#22`
[INFO] [stdout]     |                       |             up until Edition 2021 `#22` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 300 | ...           let waker = {
[INFO] [stdout] 301 | ...               let program     = scene_core.lock().unwrap().get_sub_program(sub_program_id);
[INFO] [stdout]     |                                     --------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                     `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 302 | ...               let input_core  = scene_core.lock().unwrap().get_input_stream_core(sub_program_id);
[INFO] [stdout]     |                                     --------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                     `#4` will be dropped later as of Edition 2024
[INFO] [stdout] 303 | ...
[INFO] [stdout] 304 | ...               match (program, input_core) { (Some(program), Some(input_core)) => {
[INFO] [stdout]     |                                                       -------        ----------
[INFO] [stdout]     |                                                       |              |
[INFO] [stdout]     |                                                       |              `input_core` calls a custom destructor
[INFO] [stdout]     |                                                       |              `input_core` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                       `program` calls a custom destructor
[INFO] [stdout]     |                                                       `program` will be dropped later as of Edition 2024
[INFO] [stdout] 305 | ...                   let input_stream_id = program.lock().unwrap().input_stream_id();
[INFO] [stdout]     |                           ---------------   -----------------------
[INFO] [stdout]     |                           |                 |
[INFO] [stdout]     |                           |                 this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                           |                 `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |                           `input_stream_id` calls a custom destructor
[INFO] [stdout]     |                           `input_stream_id` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 317 | ...   },
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout] 324 | ...       let wait_for_idle   = SceneProgramFn::new(idle_program, move |input: InputStream<IdleNotification>, context| async move {
[INFO] [stdout]     |               -------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `wait_for_idle` calls a custom destructor
[INFO] [stdout]     |               `wait_for_idle` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 345 | ...       if let Some(scene_core) = scene_core.upgrade() {
[INFO] [stdout]     |                       ----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                       `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 346 | ...           // Tell the core to stop (note: awaits won't return at this point!)
[INFO] [stdout] 347 | ...           let wakers = scene_core.lock().unwrap().stop();
[INFO] [stdout]     |                            --------------------------
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                            `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 359 | ...       if let (Ok(mut subscriber), Some(scene_core)) = (context.send(target), scene_core.upgrade()) {
[INFO] [stdout]     |                      --------------        ----------
[INFO] [stdout]     |                      |                     |
[INFO] [stdout]     |                      |                     this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                      |                     `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |                      `subscriber` calls a custom destructor
[INFO] [stdout]     |                      `subscriber` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 363 | ...               let subprogram_core = scene_core.lock().unwrap().get_sub_program(prog);
[INFO] [stdout]     |                       ---------------   --------------------------
[INFO] [stdout]     |                       |                 |
[INFO] [stdout]     |                       |                 this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                       |                 `#9` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       `subprogram_core` calls a custom destructor
[INFO] [stdout]     |                       `subprogram_core` will be dropped later as of Edition 2024
[INFO] [stdout] 364 | ...
[INFO] [stdout] 365 | ...               if let Some(subprogram_core) = subprogram_core {
[INFO] [stdout]     |                               ---------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                               `#10` will be dropped later as of Edition 2024
[INFO] [stdout] 366 | ...                   let input_stream_id = subprogram_core.lock().unwrap().input_stream_id.clone();
[INFO] [stdout]     |                                             -------------------------------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                                             `#11` will be dropped later as of Edition 2024
[INFO] [stdout] 367 | ...
[INFO] [stdout] 368 | ...                   subscriber.send(SceneUpdate::Started(prog, input_stream_id)).await.ok();
[INFO] [stdout]     |                       ------------------------------------------------------------------
[INFO] [stdout]     |                       |                                                            |
[INFO] [stdout]     |                       |                                                            this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                       |                                                            `#13` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                       `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 374 | ...               subscriber.send(SceneUpdate::Connected(*source, *target, stream.clone())).await.ok();
[INFO] [stdout]     |                   -------------------------------------------------------------------------------
[INFO] [stdout]     |                   |                                                                         |
[INFO] [stdout]     |                   |                                                                         this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                   |                                                                         `#15` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                   `#14` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 381 | ...       if let (Ok(mut query_response), Some(scene_core)) = (context.send(target), scene_core.upgrade()) {
[INFO] [stdout]     |                      ------------------        ----------
[INFO] [stdout]     |                      |                         |
[INFO] [stdout]     |                      |                         this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                      |                         `#16` will be dropped later as of Edition 2024
[INFO] [stdout]     |                      `query_response` calls a custom destructor
[INFO] [stdout]     |                      `query_response` will be dropped later as of Edition 2024
[INFO] [stdout] 382 | ...           // Build a response out of the current state of the scene
[INFO] [stdout] 383 | ...           let running_subprograms = scene_core.lock().unwrap().get_running_subprograms();
[INFO] [stdout]     |                                         --------------------------
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                                         `#17` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 386 | ...           let active_connections =
[INFO] [stdout]     |                   ------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `active_connections` calls a custom destructor
[INFO] [stdout]     |                   `active_connections` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 430 | ...           query_response.send(QueryResponse::with_stream(stream::iter(response))).await.ok();
[INFO] [stdout]     |               -----------------------------------------------------------------------------
[INFO] [stdout]     |               |                                                                       |
[INFO] [stdout]     |               |                                                                       this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |               |                                                                       `#19` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |               `#18` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 439 | ...           SceneUpdate::Disconnected(source, stream_id)        => { active_connections.remove(&(*source, stream_id.clone())); },
[INFO] [stdout]     |                                                                                                   ----------------------------
[INFO] [stdout]     |                                                                                                   |
[INFO] [stdout]     |                                                                                                   this value will be stored in a temporary; let us call it `#20`
[INFO] [stdout]     |                                                                                                   `#20` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 446 | ...       update_subscribers.send(update).await;
[INFO] [stdout]     |           -------------------------------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#21`
[INFO] [stdout]     |           `#21` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#22` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `request` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `start_fn` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `source` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `scene_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `program` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `input_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `input_stream_id` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `wait_for_idle` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `subscriber` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `subscriber` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `subscriber` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `subprogram_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `query_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `query_response` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `query_response` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#17` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `active_connections` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#18` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#20` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/programs/control.rs:339:47
[INFO] [stdout]     |
[INFO] [stdout] 324 |                     let wait_for_idle   = SceneProgramFn::new(idle_program, move |input: InputStream<IdleNotification>, context| as...
[INFO] [stdout]     |                         -------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `wait_for_idle` calls a custom destructor
[INFO] [stdout]     |                         `wait_for_idle` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 339 |                     if let Some(scene_core) = scene_core.upgrade() {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 342 |                 },
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `wait_for_idle` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/programs/control.rs:345:47
[INFO] [stdout]     |
[INFO] [stdout] 267 | ... let Some(request) = input.next().await {
[INFO] [stdout]     |              -------                 -----
[INFO] [stdout]     |              |                       |
[INFO] [stdout]     |              |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              |                       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |              `request` calls a custom destructor
[INFO] [stdout]     |              `request` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 272 | ...   Control(Start(start_fn)) => {
[INFO] [stdout]     |                     --------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `start_fn` calls a custom destructor
[INFO] [stdout]     |                     `start_fn` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 283 | ...   Control(Connect(source, target, stream)) => {
[INFO] [stdout]     |                       ------  ------  ------
[INFO] [stdout]     |                       |       |       |
[INFO] [stdout]     |                       |       |       `stream` calls a custom destructor
[INFO] [stdout]     |                       |       |       `stream` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       |       `target` calls a custom destructor
[INFO] [stdout]     |                       |       `target` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       `source` calls a custom destructor
[INFO] [stdout]     |                       `source` will be dropped later as of Edition 2024
[INFO] [stdout] 284 | ...       match scene_core.upgrade() { Some(scene_core) => {
[INFO] [stdout]     |                                             ----------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `scene_core` calls a custom destructor
[INFO] [stdout]     |                                             `scene_core` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 289 | ...                   update_subscribers.send(SceneUpdate::FailedConnection(error, source, target, stream)).await;
[INFO] [stdout]     |                       -------------------------------------------------------------------------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `__awaitee` calls a custom destructor
[INFO] [stdout]     |                       `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 299 | ...       if let Some(scene_core) = scene_core.upgrade() {
[INFO] [stdout]     |                       ----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 300 | ...           let waker = {
[INFO] [stdout] 301 | ...               let program     = scene_core.lock().unwrap().get_sub_program(sub_program_id);
[INFO] [stdout]     |                                     --------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                     `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 302 | ...               let input_core  = scene_core.lock().unwrap().get_input_stream_core(sub_program_id);
[INFO] [stdout]     |                                     --------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                     `#4` will be dropped later as of Edition 2024
[INFO] [stdout] 303 | ...
[INFO] [stdout] 304 | ...               match (program, input_core) { (Some(program), Some(input_core)) => {
[INFO] [stdout]     |                                                       -------        ----------
[INFO] [stdout]     |                                                       |              |
[INFO] [stdout]     |                                                       |              `input_core` calls a custom destructor
[INFO] [stdout]     |                                                       |              `input_core` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                       `program` calls a custom destructor
[INFO] [stdout]     |                                                       `program` will be dropped later as of Edition 2024
[INFO] [stdout] 305 | ...                   let input_stream_id = program.lock().unwrap().input_stream_id();
[INFO] [stdout]     |                           ---------------   -----------------------
[INFO] [stdout]     |                           |                 |
[INFO] [stdout]     |                           |                 this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                           |                 `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |                           `input_stream_id` calls a custom destructor
[INFO] [stdout]     |                           `input_stream_id` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 324 | ...       let wait_for_idle   = SceneProgramFn::new(idle_program, move |input: InputStream<IdleNotification>, context| async move {
[INFO] [stdout]     |               -------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `wait_for_idle` calls a custom destructor
[INFO] [stdout]     |               `wait_for_idle` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 345 | ...       if let Some(scene_core) = scene_core.upgrade() {
[INFO] [stdout]     |                       ----------    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |             |
[INFO] [stdout]     |                       |             this value will be stored in a temporary; let us call it `#22`
[INFO] [stdout]     |                       |             up until Edition 2021 `#22` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                       `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 346 | ...           // Tell the core to stop (note: awaits won't return at this point!)
[INFO] [stdout] 347 | ...           let wakers = scene_core.lock().unwrap().stop();
[INFO] [stdout]     |                            --------------------------
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                            `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 352 | ...   },
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout] 359 | ...       if let (Ok(mut subscriber), Some(scene_core)) = (context.send(target), scene_core.upgrade()) {
[INFO] [stdout]     |                      --------------        ----------
[INFO] [stdout]     |                      |                     |
[INFO] [stdout]     |                      |                     this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                      |                     `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |                      `subscriber` calls a custom destructor
[INFO] [stdout]     |                      `subscriber` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 363 | ...               let subprogram_core = scene_core.lock().unwrap().get_sub_program(prog);
[INFO] [stdout]     |                       ---------------   --------------------------
[INFO] [stdout]     |                       |                 |
[INFO] [stdout]     |                       |                 this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                       |                 `#9` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       `subprogram_core` calls a custom destructor
[INFO] [stdout]     |                       `subprogram_core` will be dropped later as of Edition 2024
[INFO] [stdout] 364 | ...
[INFO] [stdout] 365 | ...               if let Some(subprogram_core) = subprogram_core {
[INFO] [stdout]     |                               ---------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                               `#10` will be dropped later as of Edition 2024
[INFO] [stdout] 366 | ...                   let input_stream_id = subprogram_core.lock().unwrap().input_stream_id.clone();
[INFO] [stdout]     |                                             -------------------------------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                                             `#11` will be dropped later as of Edition 2024
[INFO] [stdout] 367 | ...
[INFO] [stdout] 368 | ...                   subscriber.send(SceneUpdate::Started(prog, input_stream_id)).await.ok();
[INFO] [stdout]     |                       ------------------------------------------------------------------
[INFO] [stdout]     |                       |                                                            |
[INFO] [stdout]     |                       |                                                            this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                       |                                                            `#13` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                       `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 374 | ...               subscriber.send(SceneUpdate::Connected(*source, *target, stream.clone())).await.ok();
[INFO] [stdout]     |                   -------------------------------------------------------------------------------
[INFO] [stdout]     |                   |                                                                         |
[INFO] [stdout]     |                   |                                                                         this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                   |                                                                         `#15` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                   `#14` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 381 | ...       if let (Ok(mut query_response), Some(scene_core)) = (context.send(target), scene_core.upgrade()) {
[INFO] [stdout]     |                      ------------------        ----------
[INFO] [stdout]     |                      |                         |
[INFO] [stdout]     |                      |                         this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                      |                         `#16` will be dropped later as of Edition 2024
[INFO] [stdout]     |                      `query_response` calls a custom destructor
[INFO] [stdout]     |                      `query_response` will be dropped later as of Edition 2024
[INFO] [stdout] 382 | ...           // Build a response out of the current state of the scene
[INFO] [stdout] 383 | ...           let running_subprograms = scene_core.lock().unwrap().get_running_subprograms();
[INFO] [stdout]     |                                         --------------------------
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                                         `#17` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 386 | ...           let active_connections =
[INFO] [stdout]     |                   ------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `active_connections` calls a custom destructor
[INFO] [stdout]     |                   `active_connections` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 430 | ...           query_response.send(QueryResponse::with_stream(stream::iter(response))).await.ok();
[INFO] [stdout]     |               -----------------------------------------------------------------------------
[INFO] [stdout]     |               |                                                                       |
[INFO] [stdout]     |               |                                                                       this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |               |                                                                       `#19` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |               `#18` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 439 | ...           SceneUpdate::Disconnected(source, stream_id)        => { active_connections.remove(&(*source, stream_id.clone())); },
[INFO] [stdout]     |                                                                                                   ----------------------------
[INFO] [stdout]     |                                                                                                   |
[INFO] [stdout]     |                                                                                                   this value will be stored in a temporary; let us call it `#20`
[INFO] [stdout]     |                                                                                                   `#20` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 446 | ...       update_subscribers.send(update).await;
[INFO] [stdout]     |           -------------------------------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#21`
[INFO] [stdout]     |           `#21` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#22` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `request` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `start_fn` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `source` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `scene_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `program` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `input_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `input_stream_id` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `wait_for_idle` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `subscriber` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `subscriber` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `subscriber` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `subprogram_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `query_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `query_response` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `query_response` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#17` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `active_connections` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#18` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#20` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/programs/control.rs:359:69
[INFO] [stdout]     |
[INFO] [stdout] 267 | ... let Some(request) = input.next().await {
[INFO] [stdout]     |              -------                 -----
[INFO] [stdout]     |              |                       |
[INFO] [stdout]     |              |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              |                       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |              `request` calls a custom destructor
[INFO] [stdout]     |              `request` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 272 | ...   Control(Start(start_fn)) => {
[INFO] [stdout]     |                     --------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `start_fn` calls a custom destructor
[INFO] [stdout]     |                     `start_fn` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 283 | ...   Control(Connect(source, target, stream)) => {
[INFO] [stdout]     |                       ------  ------  ------
[INFO] [stdout]     |                       |       |       |
[INFO] [stdout]     |                       |       |       `stream` calls a custom destructor
[INFO] [stdout]     |                       |       |       `stream` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       |       `target` calls a custom destructor
[INFO] [stdout]     |                       |       `target` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       `source` calls a custom destructor
[INFO] [stdout]     |                       `source` will be dropped later as of Edition 2024
[INFO] [stdout] 284 | ...       match scene_core.upgrade() { Some(scene_core) => {
[INFO] [stdout]     |                                             ----------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `scene_core` calls a custom destructor
[INFO] [stdout]     |                                             `scene_core` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 289 | ...                   update_subscribers.send(SceneUpdate::FailedConnection(error, source, target, stream)).await;
[INFO] [stdout]     |                       -------------------------------------------------------------------------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `__awaitee` calls a custom destructor
[INFO] [stdout]     |                       `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 299 | ...       if let Some(scene_core) = scene_core.upgrade() {
[INFO] [stdout]     |                       ----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 300 | ...           let waker = {
[INFO] [stdout] 301 | ...               let program     = scene_core.lock().unwrap().get_sub_program(sub_program_id);
[INFO] [stdout]     |                                     --------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                     `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 302 | ...               let input_core  = scene_core.lock().unwrap().get_input_stream_core(sub_program_id);
[INFO] [stdout]     |                                     --------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                     `#4` will be dropped later as of Edition 2024
[INFO] [stdout] 303 | ...
[INFO] [stdout] 304 | ...               match (program, input_core) { (Some(program), Some(input_core)) => {
[INFO] [stdout]     |                                                       -------        ----------
[INFO] [stdout]     |                                                       |              |
[INFO] [stdout]     |                                                       |              `input_core` calls a custom destructor
[INFO] [stdout]     |                                                       |              `input_core` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                       `program` calls a custom destructor
[INFO] [stdout]     |                                                       `program` will be dropped later as of Edition 2024
[INFO] [stdout] 305 | ...                   let input_stream_id = program.lock().unwrap().input_stream_id();
[INFO] [stdout]     |                           ---------------   -----------------------
[INFO] [stdout]     |                           |                 |
[INFO] [stdout]     |                           |                 this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                           |                 `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |                           `input_stream_id` calls a custom destructor
[INFO] [stdout]     |                           `input_stream_id` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 324 | ...       let wait_for_idle   = SceneProgramFn::new(idle_program, move |input: InputStream<IdleNotification>, context| async move {
[INFO] [stdout]     |               -------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `wait_for_idle` calls a custom destructor
[INFO] [stdout]     |               `wait_for_idle` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 345 | ...       if let Some(scene_core) = scene_core.upgrade() {
[INFO] [stdout]     |                       ----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                       `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 346 | ...           // Tell the core to stop (note: awaits won't return at this point!)
[INFO] [stdout] 347 | ...           let wakers = scene_core.lock().unwrap().stop();
[INFO] [stdout]     |                            --------------------------
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                            `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 359 | ...       if let (Ok(mut subscriber), Some(scene_core)) = (context.send(target), scene_core.upgrade()) {
[INFO] [stdout]     |                      --------------        ----------     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                      |                     |              |
[INFO] [stdout]     |                      |                     |              this value will be stored in a temporary; let us call it `#22`
[INFO] [stdout]     |                      |                     |              up until Edition 2021 `#22` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                      |                     this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                      |                     `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |                      `subscriber` calls a custom destructor
[INFO] [stdout]     |                      `subscriber` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 363 | ...               let subprogram_core = scene_core.lock().unwrap().get_sub_program(prog);
[INFO] [stdout]     |                       ---------------   --------------------------
[INFO] [stdout]     |                       |                 |
[INFO] [stdout]     |                       |                 this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                       |                 `#9` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       `subprogram_core` calls a custom destructor
[INFO] [stdout]     |                       `subprogram_core` will be dropped later as of Edition 2024
[INFO] [stdout] 364 | ...
[INFO] [stdout] 365 | ...               if let Some(subprogram_core) = subprogram_core {
[INFO] [stdout]     |                               ---------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                               `#10` will be dropped later as of Edition 2024
[INFO] [stdout] 366 | ...                   let input_stream_id = subprogram_core.lock().unwrap().input_stream_id.clone();
[INFO] [stdout]     |                                             -------------------------------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                                             `#11` will be dropped later as of Edition 2024
[INFO] [stdout] 367 | ...
[INFO] [stdout] 368 | ...                   subscriber.send(SceneUpdate::Started(prog, input_stream_id)).await.ok();
[INFO] [stdout]     |                       ------------------------------------------------------------------
[INFO] [stdout]     |                       |                                                            |
[INFO] [stdout]     |                       |                                                            this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                       |                                                            `#13` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                       `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 374 | ...               subscriber.send(SceneUpdate::Connected(*source, *target, stream.clone())).await.ok();
[INFO] [stdout]     |                   -------------------------------------------------------------------------------
[INFO] [stdout]     |                   |                                                                         |
[INFO] [stdout]     |                   |                                                                         this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                   |                                                                         `#15` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                   `#14` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 377 | ...   },
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout] 381 | ...       if let (Ok(mut query_response), Some(scene_core)) = (context.send(target), scene_core.upgrade()) {
[INFO] [stdout]     |                      ------------------        ----------
[INFO] [stdout]     |                      |                         |
[INFO] [stdout]     |                      |                         this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                      |                         `#16` will be dropped later as of Edition 2024
[INFO] [stdout]     |                      `query_response` calls a custom destructor
[INFO] [stdout]     |                      `query_response` will be dropped later as of Edition 2024
[INFO] [stdout] 382 | ...           // Build a response out of the current state of the scene
[INFO] [stdout] 383 | ...           let running_subprograms = scene_core.lock().unwrap().get_running_subprograms();
[INFO] [stdout]     |                                         --------------------------
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                                         `#17` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 386 | ...           let active_connections =
[INFO] [stdout]     |                   ------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `active_connections` calls a custom destructor
[INFO] [stdout]     |                   `active_connections` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 430 | ...           query_response.send(QueryResponse::with_stream(stream::iter(response))).await.ok();
[INFO] [stdout]     |               -----------------------------------------------------------------------------
[INFO] [stdout]     |               |                                                                       |
[INFO] [stdout]     |               |                                                                       this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |               |                                                                       `#19` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |               `#18` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 439 | ...           SceneUpdate::Disconnected(source, stream_id)        => { active_connections.remove(&(*source, stream_id.clone())); },
[INFO] [stdout]     |                                                                                                   ----------------------------
[INFO] [stdout]     |                                                                                                   |
[INFO] [stdout]     |                                                                                                   this value will be stored in a temporary; let us call it `#20`
[INFO] [stdout]     |                                                                                                   `#20` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 446 | ...       update_subscribers.send(update).await;
[INFO] [stdout]     |           -------------------------------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#21`
[INFO] [stdout]     |           `#21` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#22` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `request` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `start_fn` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `source` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `scene_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `program` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `input_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `input_stream_id` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `wait_for_idle` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `subscriber` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `subscriber` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `subscriber` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `subprogram_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `query_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `query_response` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `query_response` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#17` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `active_connections` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#18` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#20` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/programs/control.rs:381:73
[INFO] [stdout]     |
[INFO] [stdout] 267 | ... let Some(request) = input.next().await {
[INFO] [stdout]     |              -------                 -----
[INFO] [stdout]     |              |                       |
[INFO] [stdout]     |              |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              |                       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |              `request` calls a custom destructor
[INFO] [stdout]     |              `request` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 272 | ...   Control(Start(start_fn)) => {
[INFO] [stdout]     |                     --------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `start_fn` calls a custom destructor
[INFO] [stdout]     |                     `start_fn` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 283 | ...   Control(Connect(source, target, stream)) => {
[INFO] [stdout]     |                       ------  ------  ------
[INFO] [stdout]     |                       |       |       |
[INFO] [stdout]     |                       |       |       `stream` calls a custom destructor
[INFO] [stdout]     |                       |       |       `stream` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       |       `target` calls a custom destructor
[INFO] [stdout]     |                       |       `target` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       `source` calls a custom destructor
[INFO] [stdout]     |                       `source` will be dropped later as of Edition 2024
[INFO] [stdout] 284 | ...       match scene_core.upgrade() { Some(scene_core) => {
[INFO] [stdout]     |                                             ----------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `scene_core` calls a custom destructor
[INFO] [stdout]     |                                             `scene_core` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 289 | ...                   update_subscribers.send(SceneUpdate::FailedConnection(error, source, target, stream)).await;
[INFO] [stdout]     |                       -------------------------------------------------------------------------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `__awaitee` calls a custom destructor
[INFO] [stdout]     |                       `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 299 | ...       if let Some(scene_core) = scene_core.upgrade() {
[INFO] [stdout]     |                       ----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 300 | ...           let waker = {
[INFO] [stdout] 301 | ...               let program     = scene_core.lock().unwrap().get_sub_program(sub_program_id);
[INFO] [stdout]     |                                     --------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                     `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 302 | ...               let input_core  = scene_core.lock().unwrap().get_input_stream_core(sub_program_id);
[INFO] [stdout]     |                                     --------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                     `#4` will be dropped later as of Edition 2024
[INFO] [stdout] 303 | ...
[INFO] [stdout] 304 | ...               match (program, input_core) { (Some(program), Some(input_core)) => {
[INFO] [stdout]     |                                                       -------        ----------
[INFO] [stdout]     |                                                       |              |
[INFO] [stdout]     |                                                       |              `input_core` calls a custom destructor
[INFO] [stdout]     |                                                       |              `input_core` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                       `program` calls a custom destructor
[INFO] [stdout]     |                                                       `program` will be dropped later as of Edition 2024
[INFO] [stdout] 305 | ...                   let input_stream_id = program.lock().unwrap().input_stream_id();
[INFO] [stdout]     |                           ---------------   -----------------------
[INFO] [stdout]     |                           |                 |
[INFO] [stdout]     |                           |                 this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                           |                 `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |                           `input_stream_id` calls a custom destructor
[INFO] [stdout]     |                           `input_stream_id` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 324 | ...       let wait_for_idle   = SceneProgramFn::new(idle_program, move |input: InputStream<IdleNotification>, context| async move {
[INFO] [stdout]     |               -------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `wait_for_idle` calls a custom destructor
[INFO] [stdout]     |               `wait_for_idle` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 345 | ...       if let Some(scene_core) = scene_core.upgrade() {
[INFO] [stdout]     |                       ----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                       `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 346 | ...           // Tell the core to stop (note: awaits won't return at this point!)
[INFO] [stdout] 347 | ...           let wakers = scene_core.lock().unwrap().stop();
[INFO] [stdout]     |                            --------------------------
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                            `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 359 | ...       if let (Ok(mut subscriber), Some(scene_core)) = (context.send(target), scene_core.upgrade()) {
[INFO] [stdout]     |                      --------------        ----------
[INFO] [stdout]     |                      |                     |
[INFO] [stdout]     |                      |                     this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                      |                     `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |                      `subscriber` calls a custom destructor
[INFO] [stdout]     |                      `subscriber` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 363 | ...               let subprogram_core = scene_core.lock().unwrap().get_sub_program(prog);
[INFO] [stdout]     |                       ---------------   --------------------------
[INFO] [stdout]     |                       |                 |
[INFO] [stdout]     |                       |                 this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                       |                 `#9` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       `subprogram_core` calls a custom destructor
[INFO] [stdout]     |                       `subprogram_core` will be dropped later as of Edition 2024
[INFO] [stdout] 364 | ...
[INFO] [stdout] 365 | ...               if let Some(subprogram_core) = subprogram_core {
[INFO] [stdout]     |                               ---------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                               `#10` will be dropped later as of Edition 2024
[INFO] [stdout] 366 | ...                   let input_stream_id = subprogram_core.lock().unwrap().input_stream_id.clone();
[INFO] [stdout]     |                                             -------------------------------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                                             `#11` will be dropped later as of Edition 2024
[INFO] [stdout] 367 | ...
[INFO] [stdout] 368 | ...                   subscriber.send(SceneUpdate::Started(prog, input_stream_id)).await.ok();
[INFO] [stdout]     |                       ------------------------------------------------------------------
[INFO] [stdout]     |                       |                                                            |
[INFO] [stdout]     |                       |                                                            this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                       |                                                            `#13` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                       `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 374 | ...               subscriber.send(SceneUpdate::Connected(*source, *target, stream.clone())).await.ok();
[INFO] [stdout]     |                   -------------------------------------------------------------------------------
[INFO] [stdout]     |                   |                                                                         |
[INFO] [stdout]     |                   |                                                                         this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                   |                                                                         `#15` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                   `#14` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 381 | ...       if let (Ok(mut query_response), Some(scene_core)) = (context.send(target), scene_core.upgrade()) {
[INFO] [stdout]     |                      ------------------        ----------     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                      |                         |              |
[INFO] [stdout]     |                      |                         |              this value will be stored in a temporary; let us call it `#22`
[INFO] [stdout]     |                      |                         |              up until Edition 2021 `#22` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                      |                         this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                      |                         `#16` will be dropped later as of Edition 2024
[INFO] [stdout]     |                      `query_response` calls a custom destructor
[INFO] [stdout]     |                      `query_response` will be dropped later as of Edition 2024
[INFO] [stdout] 382 | ...           // Build a response out of the current state of the scene
[INFO] [stdout] 383 | ...           let running_subprograms = scene_core.lock().unwrap().get_running_subprograms();
[INFO] [stdout]     |                                         --------------------------
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                                         `#17` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 386 | ...           let active_connections =
[INFO] [stdout]     |                   ------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `active_connections` calls a custom destructor
[INFO] [stdout]     |                   `active_connections` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 430 | ...           query_response.send(QueryResponse::with_stream(stream::iter(response))).await.ok();
[INFO] [stdout]     |               -----------------------------------------------------------------------------
[INFO] [stdout]     |               |                                                                       |
[INFO] [stdout]     |               |                                                                       this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |               |                                                                       `#19` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |               `#18` will be dropped later as of Edition 2024
[INFO] [stdout] 431 | ...       }
[INFO] [stdout] 432 | ...   }
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout] 439 | ...           SceneUpdate::Disconnected(source, stream_id)        => { active_connections.remove(&(*source, stream_id.clone())); },
[INFO] [stdout]     |                                                                                                   ----------------------------
[INFO] [stdout]     |                                                                                                   |
[INFO] [stdout]     |                                                                                                   this value will be stored in a temporary; let us call it `#20`
[INFO] [stdout]     |                                                                                                   `#20` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 446 | ...       update_subscribers.send(update).await;
[INFO] [stdout]     |           -------------------------------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#21`
[INFO] [stdout]     |           `#21` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#22` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `request` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `start_fn` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `source` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `scene_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `program` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `input_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `input_stream_id` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `wait_for_idle` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `subscriber` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `subscriber` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `subscriber` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `subprogram_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `query_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `query_response` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `query_response` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#17` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `active_connections` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#18` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#20` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/programs/control.rs:267:35
[INFO] [stdout]     |
[INFO] [stdout] 267 | ...   while let Some(request) = input.next().await {
[INFO] [stdout]     |                      -------    ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                      |          |            |
[INFO] [stdout]     |                      |          |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                      |          |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                      |          this value will be stored in a temporary; let us call it `#22`
[INFO] [stdout]     |                      |          up until Edition 2021 `#22` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                      `request` calls a custom destructor
[INFO] [stdout]     |                      `request` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 272 | ...           Control(Start(start_fn)) => {
[INFO] [stdout]     |                             --------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `start_fn` calls a custom destructor
[INFO] [stdout]     |                             `start_fn` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 283 | ...           Control(Connect(source, target, stream)) => {
[INFO] [stdout]     |                               ------  ------  ------
[INFO] [stdout]     |                               |       |       |
[INFO] [stdout]     |                               |       |       `stream` calls a custom destructor
[INFO] [stdout]     |                               |       |       `stream` will be dropped later as of Edition 2024
[INFO] [stdout]     |                               |       `target` calls a custom destructor
[INFO] [stdout]     |                               |       `target` will be dropped later as of Edition 2024
[INFO] [stdout]     |                               `source` calls a custom destructor
[INFO] [stdout]     |                               `source` will be dropped later as of Edition 2024
[INFO] [stdout] 284 | ...               match scene_core.upgrade() { Some(scene_core) => {
[INFO] [stdout]     |                                                     ----------
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     `scene_core` calls a custom destructor
[INFO] [stdout]     |                                                     `scene_core` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 289 | ...                           update_subscribers.send(SceneUpdate::FailedConnection(error, source, target, stream)).await;
[INFO] [stdout]     |                               -------------------------------------------------------------------------------------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `__awaitee` calls a custom destructor
[INFO] [stdout]     |                               `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 299 | ...               if let Some(scene_core) = scene_core.upgrade() {
[INFO] [stdout]     |                               ----------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                               `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 300 | ...                   let waker = {
[INFO] [stdout] 301 | ...                       let program     = scene_core.lock().unwrap().get_sub_program(sub_program_id);
[INFO] [stdout]     |                                             --------------------------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                             `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 302 | ...                       let input_core  = scene_core.lock().unwrap().get_input_stream_core(sub_program_id);
[INFO] [stdout]     |                                             --------------------------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                             `#4` will be dropped later as of Edition 2024
[INFO] [stdout] 303 | ...
[INFO] [stdout] 304 | ...                       match (program, input_core) { (Some(program), Some(input_core)) => {
[INFO] [stdout]     |                                                               -------        ----------
[INFO] [stdout]     |                                                               |              |
[INFO] [stdout]     |                                                               |              `input_core` calls a custom destructor
[INFO] [stdout]     |                                                               |              `input_core` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                               `program` calls a custom destructor
[INFO] [stdout]     |                                                               `program` will be dropped later as of Edition 2024
[INFO] [stdout] 305 | ...                           let input_stream_id = program.lock().unwrap().input_stream_id();
[INFO] [stdout]     |                                   ---------------   -----------------------
[INFO] [stdout]     |                                   |                 |
[INFO] [stdout]     |                                   |                 this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                   |                 `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                   `input_stream_id` calls a custom destructor
[INFO] [stdout]     |                                   `input_stream_id` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 324 | ...               let wait_for_idle   = SceneProgramFn::new(idle_program, move |input: InputStream<IdleNotification>, context| async move {
[INFO] [stdout]     |                       -------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `wait_for_idle` calls a custom destructor
[INFO] [stdout]     |                       `wait_for_idle` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 345 | ...               if let Some(scene_core) = scene_core.upgrade() {
[INFO] [stdout]     |                               ----------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                               `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 346 | ...                   // Tell the core to stop (note: awaits won't return at this point!)
[INFO] [stdout] 347 | ...                   let wakers = scene_core.lock().unwrap().stop();
[INFO] [stdout]     |                                    --------------------------
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                    `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 359 | ...               if let (Ok(mut subscriber), Some(scene_core)) = (context.send(target), scene_core.upgrade()) {
[INFO] [stdout]     |                              --------------        ----------
[INFO] [stdout]     |                              |                     |
[INFO] [stdout]     |                              |                     this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                              |                     `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |                              `subscriber` calls a custom destructor
[INFO] [stdout]     |                              `subscriber` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 363 | ...                       let subprogram_core = scene_core.lock().unwrap().get_sub_program(prog);
[INFO] [stdout]     |                               ---------------   --------------------------
[INFO] [stdout]     |                               |                 |
[INFO] [stdout]     |                               |                 this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                               |                 `#9` will be dropped later as of Edition 2024
[INFO] [stdout]     |                               `subprogram_core` calls a custom destructor
[INFO] [stdout]     |                               `subprogram_core` will be dropped later as of Edition 2024
[INFO] [stdout] 364 | ...
[INFO] [stdout] 365 | ...                       if let Some(subprogram_core) = subprogram_core {
[INFO] [stdout]     |                                       ---------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                                       `#10` will be dropped later as of Edition 2024
[INFO] [stdout] 366 | ...                           let input_stream_id = subprogram_core.lock().unwrap().input_stream_id.clone();
[INFO] [stdout]     |                                                     -------------------------------
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                                                     `#11` will be dropped later as of Edition 2024
[INFO] [stdout] 367 | ...
[INFO] [stdout] 368 | ...                           subscriber.send(SceneUpdate::Started(prog, input_stream_id)).await.ok();
[INFO] [stdout]     |                               ------------------------------------------------------------------
[INFO] [stdout]     |                               |                                                            |
[INFO] [stdout]     |                               |                                                            this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                               |                                                            `#13` will be dropped later as of Edition 2024
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                               `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 374 | ...                       subscriber.send(SceneUpdate::Connected(*source, *target, stream.clone())).await.ok();
[INFO] [stdout]     |                           -------------------------------------------------------------------------------
[INFO] [stdout]     |                           |                                                                         |
[INFO] [stdout]     |                           |                                                                         this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                           |                                                                         `#15` will be dropped later as of Edition 2024
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                           `#14` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 381 | ...               if let (Ok(mut query_response), Some(scene_core)) = (context.send(target), scene_core.upgrade()) {
[INFO] [stdout]     |                              ------------------        ----------
[INFO] [stdout]     |                              |                         |
[INFO] [stdout]     |                              |                         this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                              |                         `#16` will be dropped later as of Edition 2024
[INFO] [stdout]     |                              `query_response` calls a custom destructor
[INFO] [stdout]     |                              `query_response` will be dropped later as of Edition 2024
[INFO] [stdout] 382 | ...                   // Build a response out of the current state of the scene
[INFO] [stdout] 383 | ...                   let running_subprograms = scene_core.lock().unwrap().get_running_subprograms();
[INFO] [stdout]     |                                                 --------------------------
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                                                 `#17` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 386 | ...                   let active_connections =
[INFO] [stdout]     |                           ------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `active_connections` calls a custom destructor
[INFO] [stdout]     |                           `active_connections` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 430 | ...                   query_response.send(QueryResponse::with_stream(stream::iter(response))).await.ok();
[INFO] [stdout]     |                       -----------------------------------------------------------------------------
[INFO] [stdout]     |                       |                                                                       |
[INFO] [stdout]     |                       |                                                                       this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |                       |                                                                       `#19` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |                       `#18` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 439 | ...                   SceneUpdate::Disconnected(source, stream_id)        => { active_connections.remove(&(*source, stream_id.clone())); },
[INFO] [stdout]     |                                                                                                           ----------------------------
[INFO] [stdout]     |                                                                                                           |
[INFO] [stdout]     |                                                                                                           this value will be stored in a temporary; let us call it `#20`
[INFO] [stdout]     |                                                                                                           `#20` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 446 | ...               update_subscribers.send(update).await;
[INFO] [stdout]     |                   -------------------------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#21`
[INFO] [stdout]     |                   `#21` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 449 | ...   }
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#22` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `request` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `start_fn` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `source` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `scene_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `scene_core` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `program` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `input_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `input_stream_id` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `wait_for_idle` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `subscriber` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `subscriber` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `subscriber` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `subprogram_core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `query_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `query_response` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `query_response` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#17` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `active_connections` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#18` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#20` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/programs/text_input.rs:210:37
[INFO] [stdout]     |
[INFO] [stdout] 192 |                     if let Ok(mut target) = context.send(target) {
[INFO] [stdout]     |                               ----------    --------------------
[INFO] [stdout]     |                               |             |
[INFO] [stdout]     |                               |             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                               |             `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                               `target` calls a custom destructor
[INFO] [stdout]     |                               `target` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 210 |             if let Ok(mut target) = context.send(target) {
[INFO] [stdout]     |                       ----------    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |             |
[INFO] [stdout]     |                       |             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       |             up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 213 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `target` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `target` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/programs/idle_request.rs:107:37
[INFO] [stdout]     |
[INFO] [stdout] 107 |                   if let Some(core) = weak_core.upgrade() {
[INFO] [stdout]     |                               ----    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                               |       |
[INFO] [stdout]     |                               |       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                               |       up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                               `core` calls a custom destructor
[INFO] [stdout]     |                               `core` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 112 |               },
[INFO] [stdout]     |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout] 130 |                           if let Some(core) = weak_core.upgrade() {
[INFO] [stdout]     |                                       ----
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                       `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 158 |                           if let Some(core) = weak_core.upgrade() {
[INFO] [stdout]     |                                       ----
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 164 | /                     future::join_all(ready_notifications.into_iter()
[INFO] [stdout] 165 | |                         .flat_map(|program_id| context.send(program_id).ok())
[INFO] [stdout] 166 | |                         .map(|mut stream| async move { stream.send(IdleNotification).await.ok(); }))
[INFO] [stdout] 167 | |                         .await;
[INFO] [stdout]     | |                              -
[INFO] [stdout]     | |                              |
[INFO] [stdout]     | |______________________________`__awaitee` calls a custom destructor
[INFO] [stdout]     |                                `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `core` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `core` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `core` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_unordered/mod.rs:575:1
[INFO] [stdout]     |
[INFO] [stdout] 575 | impl<Fut> Drop for FuturesUnordered<Fut> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/programs/idle_request.rs:130:45
[INFO] [stdout]     |
[INFO] [stdout] 107 |                   if let Some(core) = weak_core.upgrade() {
[INFO] [stdout]     |                               ----
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `core` calls a custom destructor
[INFO] [stdout]     |                               `core` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 130 |                           if let Some(core) = weak_core.upgrade() {
[INFO] [stdout]     |                                       ----    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                       |       |
[INFO] [stdout]     |                                       |       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                       |       up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                       `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 133 |                       }
[INFO] [stdout]     |                       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout] 158 |                           if let Some(core) = weak_core.upgrade() {
[INFO] [stdout]     |                                       ----
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 164 | /                     future::join_all(ready_notifications.into_iter()
[INFO] [stdout] 165 | |                         .flat_map(|program_id| context.send(program_id).ok())
[INFO] [stdout] 166 | |                         .map(|mut stream| async move { stream.send(IdleNotification).await.ok(); }))
[INFO] [stdout] 167 | |                         .await;
[INFO] [stdout]     | |                              -
[INFO] [stdout]     | |                              |
[INFO] [stdout]     | |______________________________`__awaitee` calls a custom destructor
[INFO] [stdout]     |                                `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `core` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `core` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `core` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_unordered/mod.rs:575:1
[INFO] [stdout]     |
[INFO] [stdout] 575 | impl<Fut> Drop for FuturesUnordered<Fut> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/programs/idle_request.rs:158:45
[INFO] [stdout]     |
[INFO] [stdout] 107 |                   if let Some(core) = weak_core.upgrade() {
[INFO] [stdout]     |                               ----
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `core` calls a custom destructor
[INFO] [stdout]     |                               `core` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 130 |                           if let Some(core) = weak_core.upgrade() {
[INFO] [stdout]     |                                       ----
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                       `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 158 |                           if let Some(core) = weak_core.upgrade() {
[INFO] [stdout]     |                                       ----    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                       |       |
[INFO] [stdout]     |                                       |       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                       |       up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 161 |                       }
[INFO] [stdout]     |                       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout] 164 | /                     future::join_all(ready_notifications.into_iter()
[INFO] [stdout] 165 | |                         .flat_map(|program_id| context.send(program_id).ok())
[INFO] [stdout] 166 | |                         .map(|mut stream| async move { stream.send(IdleNotification).await.ok(); }))
[INFO] [stdout] 167 | |                         .await;
[INFO] [stdout]     | |                              -
[INFO] [stdout]     | |                              |
[INFO] [stdout]     | |______________________________`__awaitee` calls a custom destructor
[INFO] [stdout]     |                                `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `core` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `core` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `core` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `core` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/process_core.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Drop for SceneProcess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_unordered/mod.rs:575:1
[INFO] [stdout]     |
[INFO] [stdout] 575 | impl<Fut> Drop for FuturesUnordered<Fut> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/programs/timer.rs:194:48
[INFO] [stdout]     |
[INFO] [stdout] 180 |                 timer_expired().await;
[INFO] [stdout]     |                 ---------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `__awaitee` calls a custom destructor
[INFO] [stdout]     |                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 184 |                 let mut timer_events_lock   = timer_events.lock().unwrap();
[INFO] [stdout]     |                     ---------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `timer_events_lock` calls a custom destructor
[INFO] [stdout]     |                     `timer_events_lock` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 194 |                     if let Ok(target_stream) = context.send::<TimeOut>(next_event.target_program) {
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                |
[INFO] [stdout]     |                                                this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 198 |                         extra_futures.lock().unwrap().push(async move {
[INFO] [stdout]     |                         -----------------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 234 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-timer-3.0.3/src/native/delay.rs:132:1
[INFO] [stdout]     |
[INFO] [stdout] 132 | impl Drop for Delay {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `timer_events_lock` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/programs/subscription.rs:141:19
[INFO] [stdout]     |
[INFO] [stdout] 141 |             match self.receivers[self.next_receiver].send(message).await {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                   |                                                |
[INFO] [stdout]     |                   |                                                this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                   |                                                up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   |                                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   |                                                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                   up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 149 |                     self.receivers.remove(self.next_receiver);
[INFO] [stdout]     |                     -----------------------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 163 |                     self.receivers.remove(self.next_receiver);
[INFO] [stdout]     |                     -----------------------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                     `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 176 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> scene/src/host/commands/read_command.rs:40:37
[INFO] [stdout]    |
[INFO] [stdout] 39 |                 while let Some(next) = input.next().await {
[INFO] [stdout]    |                                                     -----
[INFO] [stdout]    |                                                     |
[INFO] [stdout]    |                                                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 40 |                     if let Err(_) = output.send(next).await {
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]    |                                     |                 |
[INFO] [stdout]    |                                     |                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]    |                                     |                 up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    |                                     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |                                     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout]    |                                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]    |                                     up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    |                                     `__awaitee` calls a custom destructor
[INFO] [stdout]    |                                     `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 43 |                 }
[INFO] [stdout]    |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> scene/src/host/commands/read_command.rs:39:40
[INFO] [stdout]    |
[INFO] [stdout] 39 |                 while let Some(next) = input.next().await {
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^-----
[INFO] [stdout]    |                                        |            |
[INFO] [stdout]    |                                        |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                        |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]    |                                        this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]    |                                        up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 40 |                     if let Err(_) = output.send(next).await {
[INFO] [stdout]    |                                     -----------------------
[INFO] [stdout]    |                                     |                 |
[INFO] [stdout]    |                                     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |                                     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout]    |                                     `__awaitee` calls a custom destructor
[INFO] [stdout]    |                                     `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 43 |                 }
[INFO] [stdout]    |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/commands/dispatcher.rs:104:43
[INFO] [stdout]     |
[INFO] [stdout]  50 | ... let Some(next_command) = input.next().await {
[INFO] [stdout]     |              ------------                 -----
[INFO] [stdout]     |              |                            |
[INFO] [stdout]     |              |                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              |                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |              `next_command` calls a custom destructor
[INFO] [stdout]     |              `next_command` will be dropped later as of Edition 2024
[INFO] [stdout]  51 | .../ Try to fetch the stream to send queries to the command owner
[INFO] [stdout]  52 | ...et mut command_owner_stream = commands.get(next_command.name())
[INFO] [stdout]     |       ------------------------
[INFO] [stdout]     |       |
[INFO] [stdout]     |       `command_owner_stream` calls a custom destructor
[INFO] [stdout]     |       `command_owner_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  61 | ...   let scene_status = context.spawn_query(ReadCommand::default(), Query::<SceneUpdate>::with_no_target(), ());
[INFO] [stdout]     |           ------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `scene_status` calls a custom destructor
[INFO] [stdout]     |           `scene_status` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  66 | ...       if let Ok(mut response) = context.send(next_command.target())
[INFO] [stdout]     |                     ------------    -----------------------------------
[INFO] [stdout]     |                     |               |
[INFO] [stdout]     |                     |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                     |               `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                     `response` calls a custom destructor
[INFO] [stdout]     |                     `response` will be dropped later as of Edition 2024
[INFO] [stdout]  67 | ...       {
[INFO] [stdout]  68 | ...           response.send(TResponse::from(CommandError::CannotQueryScene)).await.ok();
[INFO] [stdout]     |               --------------------------------------------------------------------
[INFO] [stdout]     |               |                                                              |
[INFO] [stdout]     |               |                                                              this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |               |                                                              `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |               `__awaitee` calls a custom destructor
[INFO] [stdout]     |               `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  75 | ...   let scene_status        = scene_status.collect::<Vec<_>>().await;
[INFO] [stdout]     |           ------------          --------------------------------------
[INFO] [stdout]     |           |                     |                                |
[INFO] [stdout]     |           |                     |                                this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |           |                     |                                `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |           |                     this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |           |                     `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |           `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 103 | ...           let mut supported_commands = supported_commands;
[INFO] [stdout]     |                   ----------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `supported_commands` calls a custom destructor
[INFO] [stdout]     |                   `supported_commands` will be dropped later as of Edition 2024
[INFO] [stdout] 104 | ...           while let Some(cmd) = supported_commands.next().await {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                     |                         |
[INFO] [stdout]     |                                     |                         this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                     |                         `#7` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#32`
[INFO] [stdout]     |                                     up until Edition 2021 `#32` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 105 | ...               // Convert to a list command response
[INFO] [stdout] 106 | ...               let cmd: ListCommandResponse = match cmd.try_into() { Ok(cmd) => { cmd } _ => { continue; }};
[INFO] [stdout]     |                                                        --------------
[INFO] [stdout]     |                                                        |
[INFO] [stdout]     |                                                        this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                                                        `#8` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 117 | ...           }
[INFO] [stdout]     |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout] 134 | ...   if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(next_command.target()) {
[INFO] [stdout]     |                 -------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `response_stream` calls a custom destructor
[INFO] [stdout]     |                 `response_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 141 | ...       response_stream.send(QueryResponse::with_data(list_commands_response.into())).await.ok();
[INFO] [stdout]     |           -----------------------------------------------------------------------------------
[INFO] [stdout]     |           |                                                                             |
[INFO] [stdout]     |           |                                                                             this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |           |                                                                             `#10` will be dropped later as of Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |           `#9` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 149 | ...       let command_target                  = next_command.target();
[INFO] [stdout]     |               --------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `command_target` calls a custom destructor
[INFO] [stdout]     |               `command_target` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 153 | ...           let command_owner_stream = context.send::<RunCommand<TParameter, TResponse>>(*command_owner).ok();
[INFO] [stdout]     |                   --------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                   `#11` will be dropped later as of Edition 2024
[INFO] [stdout] 154 | ...
[INFO] [stdout] 155 | ...           if let Some(mut command_owner_stream) = command_owner_stream {
[INFO] [stdout]     |                           ------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                           `#12` will be dropped later as of Edition 2024
[INFO] [stdout] 156 | ...               if let Ok(()) = command_owner_stream.send(next_command).await {
[INFO] [stdout]     |                                   ---------------------------------------------
[INFO] [stdout]     |                                   |                                       |
[INFO] [stdout]     |                                   |                                       this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                                   |                                       `#14` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                   this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                                   `#13` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 169 | ...           let description_command_response    = QueryResponse::with_data(response.into());
[INFO] [stdout]     |                   ----------------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `description_command_response` calls a custom destructor
[INFO] [stdout]     |                   `description_command_response` will be dropped later as of Edition 2024
[INFO] [stdout] 170 | ...           let response_stream                 = context.send::<QueryResponse<TResponse>>(command_target.clone());
[INFO] [stdout]     |                   ---------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                   `#15` will be dropped later as of Edition 2024
[INFO] [stdout] 171 | ...
[INFO] [stdout] 172 | ...           if let Ok(mut response_stream) = response_stream {
[INFO] [stdout]     |                         -------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                         `#16` will be dropped later as of Edition 2024
[INFO] [stdout] 173 | ...               response_stream.send(description_command_response).await.ok();
[INFO] [stdout]     |                   --------------------------------------------------------
[INFO] [stdout]     |                   |                                                  |
[INFO] [stdout]     |                   |                                                  this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |                   |                                                  `#18` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                   `#17` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 180 | ...           if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(command_target) {
[INFO] [stdout]     |                         -------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |                         `#19` will be dropped later as of Edition 2024
[INFO] [stdout] 181 | ...               response_stream.send(QueryResponse::with_data(CommandError::CommandFailedToRespond(command_name).into())).await.ok();
[INFO] [stdout]     |                   ---------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |                   |                                                                                                         |
[INFO] [stdout]     |                   |                                                                                                         this value will be stored in a temporary; let us call it `#21`
[INFO] [stdout]     |                   |                                                                                                         `#21` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#20`
[INFO] [stdout]     |                   `#20` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 187 | ...   let mut command_owner_stream = command_owner_stream;
[INFO] [stdout]     |           ------------------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#22`
[INFO] [stdout]     |           `#22` will be dropped later as of Edition 2024
[INFO] [stdout] 188 | ...   let command_target  = next_command.target();
[INFO] [stdout]     |           --------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#23`
[INFO] [stdout]     |           `#23` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 191 | ...   match command_owner_stream.send(next_command).await { Ok(()) => {
[INFO] [stdout]     |             ---------------------------------------------
[INFO] [stdout]     |             |                                       |
[INFO] [stdout]     |             |                                       this value will be stored in a temporary; let us call it `#25`
[INFO] [stdout]     |             |                                       `#25` will be dropped later as of Edition 2024
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#24`
[INFO] [stdout]     |             `#24` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 195 | ...       if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(command_target) {
[INFO] [stdout]     |                     -------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#26`
[INFO] [stdout]     |                     `#26` will be dropped later as of Edition 2024
[INFO] [stdout] 196 | ...           response_stream.send(QueryResponse::with_data(CommandError::CommandFailedToRespond(command_name).into())).await.ok();
[INFO] [stdout]     |               ---------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |               |                                                                                                         |
[INFO] [stdout]     |               |                                                                                                         this value will be stored in a temporary; let us call it `#28`
[INFO] [stdout]     |               |                                                                                                         `#28` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#27`
[INFO] [stdout]     |               `#27` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 201 | ...   if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(next_command.target()) {
[INFO] [stdout]     |                 -------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#29`
[INFO] [stdout]     |                 `#29` will be dropped later as of Edition 2024
[INFO] [stdout] 202 | ...       let command_name = next_command.name().to_string();
[INFO] [stdout] 203 | ...       response_stream.send(QueryResponse::with_data(CommandError::CommandNotFound(command_name).into())).await.ok();
[INFO] [stdout]     |           --------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |           |                                                                                                  |
[INFO] [stdout]     |           |                                                                                                  this value will be stored in a temporary; let us call it `#31`
[INFO] [stdout]     |           |                                                                                                  `#31` will be dropped later as of Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#30`
[INFO] [stdout]     |           `#30` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_command` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_owner_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `response_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#11` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `description_command_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#17` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#18` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#20` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#21` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#22` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#23` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#24` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#25` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#26` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#26` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#26` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#27` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#28` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#29` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#29` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#29` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#30` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#31` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/commands/dispatcher.rs:104:43
[INFO] [stdout]     |
[INFO] [stdout] 104 |                     while let Some(cmd) = supported_commands.next().await {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                           |                         |
[INFO] [stdout]     |                                           |                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                           |                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                           up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 105 |                         // Convert to a list command response
[INFO] [stdout] 106 |                         let cmd: ListCommandResponse = match cmd.try_into() { Ok(cmd) => { cmd } _ => { continue; }};
[INFO] [stdout]     |                                                              --------------
[INFO] [stdout]     |                                                              |
[INFO] [stdout]     |                                                              this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                              `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 117 |                     }
[INFO] [stdout]     |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/commands/dispatcher.rs:102:49
[INFO] [stdout]     |
[INFO] [stdout]  50 | ... let Some(next_command) = input.next().await {
[INFO] [stdout]     |              ------------                 -----
[INFO] [stdout]     |              |                            |
[INFO] [stdout]     |              |                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              |                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |              `next_command` calls a custom destructor
[INFO] [stdout]     |              `next_command` will be dropped later as of Edition 2024
[INFO] [stdout]  51 | .../ Try to fetch the stream to send queries to the command owner
[INFO] [stdout]  52 | ...et mut command_owner_stream = commands.get(next_command.name())
[INFO] [stdout]     |       ------------------------
[INFO] [stdout]     |       |
[INFO] [stdout]     |       `command_owner_stream` calls a custom destructor
[INFO] [stdout]     |       `command_owner_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  61 | ...   let scene_status = context.spawn_query(ReadCommand::default(), Query::<SceneUpdate>::with_no_target(), ());
[INFO] [stdout]     |           ------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `scene_status` calls a custom destructor
[INFO] [stdout]     |           `scene_status` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  66 | ...       if let Ok(mut response) = context.send(next_command.target())
[INFO] [stdout]     |                     ------------    -----------------------------------
[INFO] [stdout]     |                     |               |
[INFO] [stdout]     |                     |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                     |               `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                     `response` calls a custom destructor
[INFO] [stdout]     |                     `response` will be dropped later as of Edition 2024
[INFO] [stdout]  67 | ...       {
[INFO] [stdout]  68 | ...           response.send(TResponse::from(CommandError::CannotQueryScene)).await.ok();
[INFO] [stdout]     |               --------------------------------------------------------------------
[INFO] [stdout]     |               |                                                              |
[INFO] [stdout]     |               |                                                              this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |               |                                                              `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |               `__awaitee` calls a custom destructor
[INFO] [stdout]     |               `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  75 | ...   let scene_status        = scene_status.collect::<Vec<_>>().await;
[INFO] [stdout]     |           ------------          --------------------------------------
[INFO] [stdout]     |           |                     |                                |
[INFO] [stdout]     |           |                     |                                this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |           |                     |                                `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |           |                     this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |           |                     `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |           `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 102 | ...       if let Ok(supported_commands) = context.spawn_query(ReadCommand::default(), RunCommand::<TParameter, TResponse>::new((), LIST_COMMANDS, ()), added_program_id) {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           this value will be stored in a temporary; let us call it `#32`
[INFO] [stdout]     |                                           up until Edition 2021 `#32` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 103 | ...           let mut supported_commands = supported_commands;
[INFO] [stdout]     |                   ----------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `supported_commands` calls a custom destructor
[INFO] [stdout]     |                   `supported_commands` will be dropped later as of Edition 2024
[INFO] [stdout] 104 | ...           while let Some(cmd) = supported_commands.next().await {
[INFO] [stdout]     |                                                               -----
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                                               `#7` will be dropped later as of Edition 2024
[INFO] [stdout] 105 | ...               // Convert to a list command response
[INFO] [stdout] 106 | ...               let cmd: ListCommandResponse = match cmd.try_into() { Ok(cmd) => { cmd } _ => { continue; }};
[INFO] [stdout]     |                                                        --------------
[INFO] [stdout]     |                                                        |
[INFO] [stdout]     |                                                        this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                                                        `#8` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 119 | ...   }
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout] 134 | ...   if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(next_command.target()) {
[INFO] [stdout]     |                 -------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `response_stream` calls a custom destructor
[INFO] [stdout]     |                 `response_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 141 | ...       response_stream.send(QueryResponse::with_data(list_commands_response.into())).await.ok();
[INFO] [stdout]     |           -----------------------------------------------------------------------------------
[INFO] [stdout]     |           |                                                                             |
[INFO] [stdout]     |           |                                                                             this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |           |                                                                             `#10` will be dropped later as of Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |           `#9` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 149 | ...       let command_target                  = next_command.target();
[INFO] [stdout]     |               --------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `command_target` calls a custom destructor
[INFO] [stdout]     |               `command_target` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 153 | ...           let command_owner_stream = context.send::<RunCommand<TParameter, TResponse>>(*command_owner).ok();
[INFO] [stdout]     |                   --------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                   `#11` will be dropped later as of Edition 2024
[INFO] [stdout] 154 | ...
[INFO] [stdout] 155 | ...           if let Some(mut command_owner_stream) = command_owner_stream {
[INFO] [stdout]     |                           ------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                           `#12` will be dropped later as of Edition 2024
[INFO] [stdout] 156 | ...               if let Ok(()) = command_owner_stream.send(next_command).await {
[INFO] [stdout]     |                                   ---------------------------------------------
[INFO] [stdout]     |                                   |                                       |
[INFO] [stdout]     |                                   |                                       this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                                   |                                       `#14` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                   this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                                   `#13` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 169 | ...           let description_command_response    = QueryResponse::with_data(response.into());
[INFO] [stdout]     |                   ----------------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `description_command_response` calls a custom destructor
[INFO] [stdout]     |                   `description_command_response` will be dropped later as of Edition 2024
[INFO] [stdout] 170 | ...           let response_stream                 = context.send::<QueryResponse<TResponse>>(command_target.clone());
[INFO] [stdout]     |                   ---------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                   `#15` will be dropped later as of Edition 2024
[INFO] [stdout] 171 | ...
[INFO] [stdout] 172 | ...           if let Ok(mut response_stream) = response_stream {
[INFO] [stdout]     |                         -------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                         `#16` will be dropped later as of Edition 2024
[INFO] [stdout] 173 | ...               response_stream.send(description_command_response).await.ok();
[INFO] [stdout]     |                   --------------------------------------------------------
[INFO] [stdout]     |                   |                                                  |
[INFO] [stdout]     |                   |                                                  this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |                   |                                                  `#18` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                   `#17` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 180 | ...           if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(command_target) {
[INFO] [stdout]     |                         -------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |                         `#19` will be dropped later as of Edition 2024
[INFO] [stdout] 181 | ...               response_stream.send(QueryResponse::with_data(CommandError::CommandFailedToRespond(command_name).into())).await.ok();
[INFO] [stdout]     |                   ---------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |                   |                                                                                                         |
[INFO] [stdout]     |                   |                                                                                                         this value will be stored in a temporary; let us call it `#21`
[INFO] [stdout]     |                   |                                                                                                         `#21` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#20`
[INFO] [stdout]     |                   `#20` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 187 | ...   let mut command_owner_stream = command_owner_stream;
[INFO] [stdout]     |           ------------------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#22`
[INFO] [stdout]     |           `#22` will be dropped later as of Edition 2024
[INFO] [stdout] 188 | ...   let command_target  = next_command.target();
[INFO] [stdout]     |           --------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#23`
[INFO] [stdout]     |           `#23` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 191 | ...   match command_owner_stream.send(next_command).await { Ok(()) => {
[INFO] [stdout]     |             ---------------------------------------------
[INFO] [stdout]     |             |                                       |
[INFO] [stdout]     |             |                                       this value will be stored in a temporary; let us call it `#25`
[INFO] [stdout]     |             |                                       `#25` will be dropped later as of Edition 2024
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#24`
[INFO] [stdout]     |             `#24` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 195 | ...       if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(command_target) {
[INFO] [stdout]     |                     -------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#26`
[INFO] [stdout]     |                     `#26` will be dropped later as of Edition 2024
[INFO] [stdout] 196 | ...           response_stream.send(QueryResponse::with_data(CommandError::CommandFailedToRespond(command_name).into())).await.ok();
[INFO] [stdout]     |               ---------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |               |                                                                                                         |
[INFO] [stdout]     |               |                                                                                                         this value will be stored in a temporary; let us call it `#28`
[INFO] [stdout]     |               |                                                                                                         `#28` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#27`
[INFO] [stdout]     |               `#27` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 201 | ...   if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(next_command.target()) {
[INFO] [stdout]     |                 -------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#29`
[INFO] [stdout]     |                 `#29` will be dropped later as of Edition 2024
[INFO] [stdout] 202 | ...       let command_name = next_command.name().to_string();
[INFO] [stdout] 203 | ...       response_stream.send(QueryResponse::with_data(CommandError::CommandNotFound(command_name).into())).await.ok();
[INFO] [stdout]     |           --------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |           |                                                                                                  |
[INFO] [stdout]     |           |                                                                                                  this value will be stored in a temporary; let us call it `#31`
[INFO] [stdout]     |           |                                                                                                  `#31` will be dropped later as of Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#30`
[INFO] [stdout]     |           `#30` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_command` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_owner_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `response_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#11` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `description_command_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#17` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#18` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#20` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#21` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#22` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#23` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#24` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#25` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#26` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#26` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#26` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#27` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#28` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#29` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#29` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#29` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#30` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#31` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/commands/dispatcher.rs:134:46
[INFO] [stdout]     |
[INFO] [stdout]  50 | ...hile let Some(next_command) = input.next().await {
[INFO] [stdout]     |                  ------------                 -----
[INFO] [stdout]     |                  |                            |
[INFO] [stdout]     |                  |                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                  |                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                  `next_command` calls a custom destructor
[INFO] [stdout]     |                  `next_command` will be dropped later as of Edition 2024
[INFO] [stdout]  51 | ...   // Try to fetch the stream to send queries to the command owner
[INFO] [stdout]  52 | ...   let mut command_owner_stream = commands.get(next_command.name())
[INFO] [stdout]     |           ------------------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `command_owner_stream` calls a custom destructor
[INFO] [stdout]     |           `command_owner_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  61 | ...       let scene_status = context.spawn_query(ReadCommand::default(), Query::<SceneUpdate>::with_no_target(), ());
[INFO] [stdout]     |               ------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `scene_status` calls a custom destructor
[INFO] [stdout]     |               `scene_status` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  66 | ...           if let Ok(mut response) = context.send(next_command.target())
[INFO] [stdout]     |                         ------------    -----------------------------------
[INFO] [stdout]     |                         |               |
[INFO] [stdout]     |                         |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                         |               `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                         `response` calls a custom destructor
[INFO] [stdout]     |                         `response` will be dropped later as of Edition 2024
[INFO] [stdout]  67 | ...           {
[INFO] [stdout]  68 | ...               response.send(TResponse::from(CommandError::CannotQueryScene)).await.ok();
[INFO] [stdout]     |                   --------------------------------------------------------------------
[INFO] [stdout]     |                   |                                                              |
[INFO] [stdout]     |                   |                                                              this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                   |                                                              `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  75 | ...       let scene_status        = scene_status.collect::<Vec<_>>().await;
[INFO] [stdout]     |               ------------          --------------------------------------
[INFO] [stdout]     |               |                     |                                |
[INFO] [stdout]     |               |                     |                                this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |               |                     |                                `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |               |                     this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |               |                     `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |               `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 103 | ...               let mut supported_commands = supported_commands;
[INFO] [stdout]     |                       ----------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `supported_commands` calls a custom destructor
[INFO] [stdout]     |                       `supported_commands` will be dropped later as of Edition 2024
[INFO] [stdout] 104 | ...               while let Some(cmd) = supported_commands.next().await {
[INFO] [stdout]     |                                                                   -----
[INFO] [stdout]     |                                                                   |
[INFO] [stdout]     |                                                                   this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                                                   `#7` will be dropped later as of Edition 2024
[INFO] [stdout] 105 | ...                   // Convert to a list command response
[INFO] [stdout] 106 | ...                   let cmd: ListCommandResponse = match cmd.try_into() { Ok(cmd) => { cmd } _ => { continue; }};
[INFO] [stdout]     |                                                            --------------
[INFO] [stdout]     |                                                            |
[INFO] [stdout]     |                                                            this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                                                            `#8` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 134 | ...       if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(next_command.target()) {
[INFO] [stdout]     |                     -------------------    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |                      |
[INFO] [stdout]     |                     |                      this value will be stored in a temporary; let us call it `#32`
[INFO] [stdout]     |                     |                      up until Edition 2021 `#32` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                     `response_stream` calls a custom destructor
[INFO] [stdout]     |                     `response_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 141 | ...           response_stream.send(QueryResponse::with_data(list_commands_response.into())).await.ok();
[INFO] [stdout]     |               -----------------------------------------------------------------------------------
[INFO] [stdout]     |               |                                                                             |
[INFO] [stdout]     |               |                                                                             this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |               |                                                                             `#10` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |               `#9` will be dropped later as of Edition 2024
[INFO] [stdout] 142 | ...       }
[INFO] [stdout] 143 | ...   } else if next_command.name() == DESCRIBE_COMMAND {
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout] 149 | ...           let command_target                  = next_command.target();
[INFO] [stdout]     |                   --------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `command_target` calls a custom destructor
[INFO] [stdout]     |                   `command_target` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 153 | ...               let command_owner_stream = context.send::<RunCommand<TParameter, TResponse>>(*command_owner).ok();
[INFO] [stdout]     |                       --------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                       `#11` will be dropped later as of Edition 2024
[INFO] [stdout] 154 | ...
[INFO] [stdout] 155 | ...               if let Some(mut command_owner_stream) = command_owner_stream {
[INFO] [stdout]     |                               ------------------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                               `#12` will be dropped later as of Edition 2024
[INFO] [stdout] 156 | ...                   if let Ok(()) = command_owner_stream.send(next_command).await {
[INFO] [stdout]     |                                       ---------------------------------------------
[INFO] [stdout]     |                                       |                                       |
[INFO] [stdout]     |                                       |                                       this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                                       |                                       `#14` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                                       `#13` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 169 | ...               let description_command_response    = QueryResponse::with_data(response.into());
[INFO] [stdout]     |                       ----------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `description_command_response` calls a custom destructor
[INFO] [stdout]     |                       `description_command_response` will be dropped later as of Edition 2024
[INFO] [stdout] 170 | ...               let response_stream                 = context.send::<QueryResponse<TResponse>>(command_target.clone());
[INFO] [stdout]     |                       ---------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                       `#15` will be dropped later as of Edition 2024
[INFO] [stdout] 171 | ...
[INFO] [stdout] 172 | ...               if let Ok(mut response_stream) = response_stream {
[INFO] [stdout]     |                             -------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                             `#16` will be dropped later as of Edition 2024
[INFO] [stdout] 173 | ...                   response_stream.send(description_command_response).await.ok();
[INFO] [stdout]     |                       --------------------------------------------------------
[INFO] [stdout]     |                       |                                                  |
[INFO] [stdout]     |                       |                                                  this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |                       |                                                  `#18` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                       `#17` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 180 | ...               if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(command_target) {
[INFO] [stdout]     |                             -------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |                             `#19` will be dropped later as of Edition 2024
[INFO] [stdout] 181 | ...                   response_stream.send(QueryResponse::with_data(CommandError::CommandFailedToRespond(command_name).into())).await.ok();
[INFO] [stdout]     |                       ---------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |                       |                                                                                                         |
[INFO] [stdout]     |                       |                                                                                                         this value will be stored in a temporary; let us call it `#21`
[INFO] [stdout]     |                       |                                                                                                         `#21` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#20`
[INFO] [stdout]     |                       `#20` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 187 | ...       let mut command_owner_stream = command_owner_stream;
[INFO] [stdout]     |               ------------------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#22`
[INFO] [stdout]     |               `#22` will be dropped later as of Edition 2024
[INFO] [stdout] 188 | ...       let command_target  = next_command.target();
[INFO] [stdout]     |               --------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#23`
[INFO] [stdout]     |               `#23` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 191 | ...       match command_owner_stream.send(next_command).await { Ok(()) => {
[INFO] [stdout]     |                 ---------------------------------------------
[INFO] [stdout]     |                 |                                       |
[INFO] [stdout]     |                 |                                       this value will be stored in a temporary; let us call it `#25`
[INFO] [stdout]     |                 |                                       `#25` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#24`
[INFO] [stdout]     |                 `#24` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 195 | ...           if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(command_target) {
[INFO] [stdout]     |                         -------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#26`
[INFO] [stdout]     |                         `#26` will be dropped later as of Edition 2024
[INFO] [stdout] 196 | ...               response_stream.send(QueryResponse::with_data(CommandError::CommandFailedToRespond(command_name).into())).await.ok();
[INFO] [stdout]     |                   ---------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |                   |                                                                                                         |
[INFO] [stdout]     |                   |                                                                                                         this value will be stored in a temporary; let us call it `#28`
[INFO] [stdout]     |                   |                                                                                                         `#28` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#27`
[INFO] [stdout]     |                   `#27` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 201 | ...       if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(next_command.target()) {
[INFO] [stdout]     |                     -------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#29`
[INFO] [stdout]     |                     `#29` will be dropped later as of Edition 2024
[INFO] [stdout] 202 | ...           let command_name = next_command.name().to_string();
[INFO] [stdout] 203 | ...           response_stream.send(QueryResponse::with_data(CommandError::CommandNotFound(command_name).into())).await.ok();
[INFO] [stdout]     |               --------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |               |                                                                                                  |
[INFO] [stdout]     |               |                                                                                                  this value will be stored in a temporary; let us call it `#31`
[INFO] [stdout]     |               |                                                                                                  `#31` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#30`
[INFO] [stdout]     |               `#30` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#32` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#32` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#32` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_command` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_owner_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `response_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#11` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `description_command_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#17` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#18` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#20` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#21` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#22` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#23` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#24` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#25` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#26` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#26` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#26` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#27` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#28` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#29` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#29` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#29` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#30` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#31` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/commands/dispatcher.rs:156:41
[INFO] [stdout]     |
[INFO] [stdout]  50 | ... let Some(next_command) = input.next().await {
[INFO] [stdout]     |              ------------                 -----
[INFO] [stdout]     |              |                            |
[INFO] [stdout]     |              |                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              |                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |              `next_command` calls a custom destructor
[INFO] [stdout]     |              `next_command` will be dropped later as of Edition 2024
[INFO] [stdout]  51 | .../ Try to fetch the stream to send queries to the command owner
[INFO] [stdout]  52 | ...et mut command_owner_stream = commands.get(next_command.name())
[INFO] [stdout]     |       ------------------------
[INFO] [stdout]     |       |
[INFO] [stdout]     |       `command_owner_stream` calls a custom destructor
[INFO] [stdout]     |       `command_owner_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  61 | ...   let scene_status = context.spawn_query(ReadCommand::default(), Query::<SceneUpdate>::with_no_target(), ());
[INFO] [stdout]     |           ------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `scene_status` calls a custom destructor
[INFO] [stdout]     |           `scene_status` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  66 | ...       if let Ok(mut response) = context.send(next_command.target())
[INFO] [stdout]     |                     ------------    -----------------------------------
[INFO] [stdout]     |                     |               |
[INFO] [stdout]     |                     |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                     |               `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                     `response` calls a custom destructor
[INFO] [stdout]     |                     `response` will be dropped later as of Edition 2024
[INFO] [stdout]  67 | ...       {
[INFO] [stdout]  68 | ...           response.send(TResponse::from(CommandError::CannotQueryScene)).await.ok();
[INFO] [stdout]     |               --------------------------------------------------------------------
[INFO] [stdout]     |               |                                                              |
[INFO] [stdout]     |               |                                                              this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |               |                                                              `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |               `__awaitee` calls a custom destructor
[INFO] [stdout]     |               `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  75 | ...   let scene_status        = scene_status.collect::<Vec<_>>().await;
[INFO] [stdout]     |           ------------          --------------------------------------
[INFO] [stdout]     |           |                     |                                |
[INFO] [stdout]     |           |                     |                                this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |           |                     |                                `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |           |                     this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |           |                     `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |           `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 103 | ...           let mut supported_commands = supported_commands;
[INFO] [stdout]     |                   ----------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `supported_commands` calls a custom destructor
[INFO] [stdout]     |                   `supported_commands` will be dropped later as of Edition 2024
[INFO] [stdout] 104 | ...           while let Some(cmd) = supported_commands.next().await {
[INFO] [stdout]     |                                                               -----
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                                               `#7` will be dropped later as of Edition 2024
[INFO] [stdout] 105 | ...               // Convert to a list command response
[INFO] [stdout] 106 | ...               let cmd: ListCommandResponse = match cmd.try_into() { Ok(cmd) => { cmd } _ => { continue; }};
[INFO] [stdout]     |                                                        --------------
[INFO] [stdout]     |                                                        |
[INFO] [stdout]     |                                                        this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                                                        `#8` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 134 | ...   if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(next_command.target()) {
[INFO] [stdout]     |                 -------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `response_stream` calls a custom destructor
[INFO] [stdout]     |                 `response_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 141 | ...       response_stream.send(QueryResponse::with_data(list_commands_response.into())).await.ok();
[INFO] [stdout]     |           -----------------------------------------------------------------------------------
[INFO] [stdout]     |           |                                                                             |
[INFO] [stdout]     |           |                                                                             this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |           |                                                                             `#10` will be dropped later as of Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |           `#9` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 149 | ...       let command_target                  = next_command.target();
[INFO] [stdout]     |               --------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `command_target` calls a custom destructor
[INFO] [stdout]     |               `command_target` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 153 | ...           let command_owner_stream = context.send::<RunCommand<TParameter, TResponse>>(*command_owner).ok();
[INFO] [stdout]     |                   --------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                   `#11` will be dropped later as of Edition 2024
[INFO] [stdout] 154 | ...
[INFO] [stdout] 155 | ...           if let Some(mut command_owner_stream) = command_owner_stream {
[INFO] [stdout]     |                           ------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                           `#12` will be dropped later as of Edition 2024
[INFO] [stdout] 156 | ...               if let Ok(()) = command_owner_stream.send(next_command).await {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                   |                                       |
[INFO] [stdout]     |                                   |                                       this value will be stored in a temporary; let us call it `#33`
[INFO] [stdout]     |                                   |                                       up until Edition 2021 `#33` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                   |                                       this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                                   |                                       `#14` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                   this value will be stored in a temporary; let us call it `#32`
[INFO] [stdout]     |                                   up until Edition 2021 `#32` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                   this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                                   `#13` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 160 | ...           }
[INFO] [stdout]     |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout] 169 | ...           let description_command_response    = QueryResponse::with_data(response.into());
[INFO] [stdout]     |                   ----------------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `description_command_response` calls a custom destructor
[INFO] [stdout]     |                   `description_command_response` will be dropped later as of Edition 2024
[INFO] [stdout] 170 | ...           let response_stream                 = context.send::<QueryResponse<TResponse>>(command_target.clone());
[INFO] [stdout]     |                   ---------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                   `#15` will be dropped later as of Edition 2024
[INFO] [stdout] 171 | ...
[INFO] [stdout] 172 | ...           if let Ok(mut response_stream) = response_stream {
[INFO] [stdout]     |                         -------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                         `#16` will be dropped later as of Edition 2024
[INFO] [stdout] 173 | ...               response_stream.send(description_command_response).await.ok();
[INFO] [stdout]     |                   --------------------------------------------------------
[INFO] [stdout]     |                   |                                                  |
[INFO] [stdout]     |                   |                                                  this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |                   |                                                  `#18` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                   `#17` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 180 | ...           if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(command_target) {
[INFO] [stdout]     |                         -------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |                         `#19` will be dropped later as of Edition 2024
[INFO] [stdout] 181 | ...               response_stream.send(QueryResponse::with_data(CommandError::CommandFailedToRespond(command_name).into())).await.ok();
[INFO] [stdout]     |                   ---------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |                   |                                                                                                         |
[INFO] [stdout]     |                   |                                                                                                         this value will be stored in a temporary; let us call it `#21`
[INFO] [stdout]     |                   |                                                                                                         `#21` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#20`
[INFO] [stdout]     |                   `#20` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 187 | ...   let mut command_owner_stream = command_owner_stream;
[INFO] [stdout]     |           ------------------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#22`
[INFO] [stdout]     |           `#22` will be dropped later as of Edition 2024
[INFO] [stdout] 188 | ...   let command_target  = next_command.target();
[INFO] [stdout]     |           --------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#23`
[INFO] [stdout]     |           `#23` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 191 | ...   match command_owner_stream.send(next_command).await { Ok(()) => {
[INFO] [stdout]     |             ---------------------------------------------
[INFO] [stdout]     |             |                                       |
[INFO] [stdout]     |             |                                       this value will be stored in a temporary; let us call it `#25`
[INFO] [stdout]     |             |                                       `#25` will be dropped later as of Edition 2024
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#24`
[INFO] [stdout]     |             `#24` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 195 | ...       if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(command_target) {
[INFO] [stdout]     |                     -------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#26`
[INFO] [stdout]     |                     `#26` will be dropped later as of Edition 2024
[INFO] [stdout] 196 | ...           response_stream.send(QueryResponse::with_data(CommandError::CommandFailedToRespond(command_name).into())).await.ok();
[INFO] [stdout]     |               ---------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |               |                                                                                                         |
[INFO] [stdout]     |               |                                                                                                         this value will be stored in a temporary; let us call it `#28`
[INFO] [stdout]     |               |                                                                                                         `#28` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#27`
[INFO] [stdout]     |               `#27` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 201 | ...   if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(next_command.target()) {
[INFO] [stdout]     |                 -------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#29`
[INFO] [stdout]     |                 `#29` will be dropped later as of Edition 2024
[INFO] [stdout] 202 | ...       let command_name = next_command.name().to_string();
[INFO] [stdout] 203 | ...       response_stream.send(QueryResponse::with_data(CommandError::CommandNotFound(command_name).into())).await.ok();
[INFO] [stdout]     |           --------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |           |                                                                                                  |
[INFO] [stdout]     |           |                                                                                                  this value will be stored in a temporary; let us call it `#31`
[INFO] [stdout]     |           |                                                                                                  `#31` will be dropped later as of Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#30`
[INFO] [stdout]     |           `#30` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#32` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#33` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_command` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_owner_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `response_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#11` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `description_command_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#17` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#18` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#20` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#21` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#22` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#23` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#24` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#25` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#26` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#26` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#26` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#27` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#28` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#29` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#29` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#29` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#30` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#31` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/commands/dispatcher.rs:180:54
[INFO] [stdout]     |
[INFO] [stdout]  50 | ... let Some(next_command) = input.next().await {
[INFO] [stdout]     |              ------------                 -----
[INFO] [stdout]     |              |                            |
[INFO] [stdout]     |              |                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              |                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |              `next_command` calls a custom destructor
[INFO] [stdout]     |              `next_command` will be dropped later as of Edition 2024
[INFO] [stdout]  51 | .../ Try to fetch the stream to send queries to the command owner
[INFO] [stdout]  52 | ...et mut command_owner_stream = commands.get(next_command.name())
[INFO] [stdout]     |       ------------------------
[INFO] [stdout]     |       |
[INFO] [stdout]     |       `command_owner_stream` calls a custom destructor
[INFO] [stdout]     |       `command_owner_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  61 | ...   let scene_status = context.spawn_query(ReadCommand::default(), Query::<SceneUpdate>::with_no_target(), ());
[INFO] [stdout]     |           ------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `scene_status` calls a custom destructor
[INFO] [stdout]     |           `scene_status` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  66 | ...       if let Ok(mut response) = context.send(next_command.target())
[INFO] [stdout]     |                     ------------    -----------------------------------
[INFO] [stdout]     |                     |               |
[INFO] [stdout]     |                     |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                     |               `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                     `response` calls a custom destructor
[INFO] [stdout]     |                     `response` will be dropped later as of Edition 2024
[INFO] [stdout]  67 | ...       {
[INFO] [stdout]  68 | ...           response.send(TResponse::from(CommandError::CannotQueryScene)).await.ok();
[INFO] [stdout]     |               --------------------------------------------------------------------
[INFO] [stdout]     |               |                                                              |
[INFO] [stdout]     |               |                                                              this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |               |                                                              `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |               `__awaitee` calls a custom destructor
[INFO] [stdout]     |               `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  75 | ...   let scene_status        = scene_status.collect::<Vec<_>>().await;
[INFO] [stdout]     |           ------------          --------------------------------------
[INFO] [stdout]     |           |                     |                                |
[INFO] [stdout]     |           |                     |                                this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |           |                     |                                `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |           |                     this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |           |                     `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |           `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 103 | ...           let mut supported_commands = supported_commands;
[INFO] [stdout]     |                   ----------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `supported_commands` calls a custom destructor
[INFO] [stdout]     |                   `supported_commands` will be dropped later as of Edition 2024
[INFO] [stdout] 104 | ...           while let Some(cmd) = supported_commands.next().await {
[INFO] [stdout]     |                                                               -----
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                                               `#7` will be dropped later as of Edition 2024
[INFO] [stdout] 105 | ...               // Convert to a list command response
[INFO] [stdout] 106 | ...               let cmd: ListCommandResponse = match cmd.try_into() { Ok(cmd) => { cmd } _ => { continue; }};
[INFO] [stdout]     |                                                        --------------
[INFO] [stdout]     |                                                        |
[INFO] [stdout]     |                                                        this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                                                        `#8` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 134 | ...   if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(next_command.target()) {
[INFO] [stdout]     |                 -------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `response_stream` calls a custom destructor
[INFO] [stdout]     |                 `response_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 141 | ...       response_stream.send(QueryResponse::with_data(list_commands_response.into())).await.ok();
[INFO] [stdout]     |           -----------------------------------------------------------------------------------
[INFO] [stdout]     |           |                                                                             |
[INFO] [stdout]     |           |                                                                             this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |           |                                                                             `#10` will be dropped later as of Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |           `#9` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 149 | ...       let command_target                  = next_command.target();
[INFO] [stdout]     |               --------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `command_target` calls a custom destructor
[INFO] [stdout]     |               `command_target` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 153 | ...           let command_owner_stream = context.send::<RunCommand<TParameter, TResponse>>(*command_owner).ok();
[INFO] [stdout]     |                   --------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                   `#11` will be dropped later as of Edition 2024
[INFO] [stdout] 154 | ...
[INFO] [stdout] 155 | ...           if let Some(mut command_owner_stream) = command_owner_stream {
[INFO] [stdout]     |                           ------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                           `#12` will be dropped later as of Edition 2024
[INFO] [stdout] 156 | ...               if let Ok(()) = command_owner_stream.send(next_command).await {
[INFO] [stdout]     |                                   ---------------------------------------------
[INFO] [stdout]     |                                   |                                       |
[INFO] [stdout]     |                                   |                                       this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                                   |                                       `#14` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                   this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                                   `#13` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 169 | ...           let description_command_response    = QueryResponse::with_data(response.into());
[INFO] [stdout]     |                   ----------------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `description_command_response` calls a custom destructor
[INFO] [stdout]     |                   `description_command_response` will be dropped later as of Edition 2024
[INFO] [stdout] 170 | ...           let response_stream                 = context.send::<QueryResponse<TResponse>>(command_target.clone());
[INFO] [stdout]     |                   ---------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                   `#15` will be dropped later as of Edition 2024
[INFO] [stdout] 171 | ...
[INFO] [stdout] 172 | ...           if let Ok(mut response_stream) = response_stream {
[INFO] [stdout]     |                         -------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                         `#16` will be dropped later as of Edition 2024
[INFO] [stdout] 173 | ...               response_stream.send(description_command_response).await.ok();
[INFO] [stdout]     |                   --------------------------------------------------------
[INFO] [stdout]     |                   |                                                  |
[INFO] [stdout]     |                   |                                                  this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |                   |                                                  `#18` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                   `#17` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 180 | ...           if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(command_target) {
[INFO] [stdout]     |                         -------------------    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                         |                      |
[INFO] [stdout]     |                         |                      this value will be stored in a temporary; let us call it `#32`
[INFO] [stdout]     |                         |                      up until Edition 2021 `#32` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |                         `#19` will be dropped later as of Edition 2024
[INFO] [stdout] 181 | ...               response_stream.send(QueryResponse::with_data(CommandError::CommandFailedToRespond(command_name).into())).await.ok();
[INFO] [stdout]     |                   ---------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |                   |                                                                                                         |
[INFO] [stdout]     |                   |                                                                                                         this value will be stored in a temporary; let us call it `#21`
[INFO] [stdout]     |                   |                                                                                                         `#21` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#20`
[INFO] [stdout]     |                   `#20` will be dropped later as of Edition 2024
[INFO] [stdout] 182 | ...           }
[INFO] [stdout] 183 | ...       }
[INFO] [stdout]     |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout] 187 | ...   let mut command_owner_stream = command_owner_stream;
[INFO] [stdout]     |           ------------------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#22`
[INFO] [stdout]     |           `#22` will be dropped later as of Edition 2024
[INFO] [stdout] 188 | ...   let command_target  = next_command.target();
[INFO] [stdout]     |           --------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#23`
[INFO] [stdout]     |           `#23` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 191 | ...   match command_owner_stream.send(next_command).await { Ok(()) => {
[INFO] [stdout]     |             ---------------------------------------------
[INFO] [stdout]     |             |                                       |
[INFO] [stdout]     |             |                                       this value will be stored in a temporary; let us call it `#25`
[INFO] [stdout]     |             |                                       `#25` will be dropped later as of Edition 2024
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#24`
[INFO] [stdout]     |             `#24` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 195 | ...       if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(command_target) {
[INFO] [stdout]     |                     -------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#26`
[INFO] [stdout]     |                     `#26` will be dropped later as of Edition 2024
[INFO] [stdout] 196 | ...           response_stream.send(QueryResponse::with_data(CommandError::CommandFailedToRespond(command_name).into())).await.ok();
[INFO] [stdout]     |               ---------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |               |                                                                                                         |
[INFO] [stdout]     |               |                                                                                                         this value will be stored in a temporary; let us call it `#28`
[INFO] [stdout]     |               |                                                                                                         `#28` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#27`
[INFO] [stdout]     |               `#27` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 201 | ...   if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(next_command.target()) {
[INFO] [stdout]     |                 -------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#29`
[INFO] [stdout]     |                 `#29` will be dropped later as of Edition 2024
[INFO] [stdout] 202 | ...       let command_name = next_command.name().to_string();
[INFO] [stdout] 203 | ...       response_stream.send(QueryResponse::with_data(CommandError::CommandNotFound(command_name).into())).await.ok();
[INFO] [stdout]     |           --------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |           |                                                                                                  |
[INFO] [stdout]     |           |                                                                                                  this value will be stored in a temporary; let us call it `#31`
[INFO] [stdout]     |           |                                                                                                  `#31` will be dropped later as of Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#30`
[INFO] [stdout]     |           `#30` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#32` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#32` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#32` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_command` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_owner_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `response_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#11` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `description_command_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#17` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#18` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#20` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#21` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#22` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#23` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#24` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#25` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#26` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#26` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#26` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#27` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#28` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#29` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#29` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#29` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#30` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#31` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling bzip2 v0.5.2
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/commands/dispatcher.rs:145:34
[INFO] [stdout]     |
[INFO] [stdout]  50 | ...hile let Some(next_command) = input.next().await {
[INFO] [stdout]     |                  ------------                 -----
[INFO] [stdout]     |                  |                            |
[INFO] [stdout]     |                  |                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                  |                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                  `next_command` calls a custom destructor
[INFO] [stdout]     |                  `next_command` will be dropped later as of Edition 2024
[INFO] [stdout]  51 | ...   // Try to fetch the stream to send queries to the command owner
[INFO] [stdout]  52 | ...   let mut command_owner_stream = commands.get(next_command.name())
[INFO] [stdout]     |           ------------------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `command_owner_stream` calls a custom destructor
[INFO] [stdout]     |           `command_owner_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  61 | ...       let scene_status = context.spawn_query(ReadCommand::default(), Query::<SceneUpdate>::with_no_target(), ());
[INFO] [stdout]     |               ------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `scene_status` calls a custom destructor
[INFO] [stdout]     |               `scene_status` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  66 | ...           if let Ok(mut response) = context.send(next_command.target())
[INFO] [stdout]     |                         ------------    -----------------------------------
[INFO] [stdout]     |                         |               |
[INFO] [stdout]     |                         |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                         |               `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                         `response` calls a custom destructor
[INFO] [stdout]     |                         `response` will be dropped later as of Edition 2024
[INFO] [stdout]  67 | ...           {
[INFO] [stdout]  68 | ...               response.send(TResponse::from(CommandError::CannotQueryScene)).await.ok();
[INFO] [stdout]     |                   --------------------------------------------------------------------
[INFO] [stdout]     |                   |                                                              |
[INFO] [stdout]     |                   |                                                              this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                   |                                                              `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  75 | ...       let scene_status        = scene_status.collect::<Vec<_>>().await;
[INFO] [stdout]     |               ------------          --------------------------------------
[INFO] [stdout]     |               |                     |                                |
[INFO] [stdout]     |               |                     |                                this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |               |                     |                                `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |               |                     this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |               |                     `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |               `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 103 | ...               let mut supported_commands = supported_commands;
[INFO] [stdout]     |                       ----------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `supported_commands` calls a custom destructor
[INFO] [stdout]     |                       `supported_commands` will be dropped later as of Edition 2024
[INFO] [stdout] 104 | ...               while let Some(cmd) = supported_commands.next().await {
[INFO] [stdout]     |                                                                   -----
[INFO] [stdout]     |                                                                   |
[INFO] [stdout]     |                                                                   this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                                                   `#7` will be dropped later as of Edition 2024
[INFO] [stdout] 105 | ...                   // Convert to a list command response
[INFO] [stdout] 106 | ...                   let cmd: ListCommandResponse = match cmd.try_into() { Ok(cmd) => { cmd } _ => { continue; }};
[INFO] [stdout]     |                                                            --------------
[INFO] [stdout]     |                                                            |
[INFO] [stdout]     |                                                            this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                                                            `#8` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 134 | ...       if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(next_command.target()) {
[INFO] [stdout]     |                     -------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `response_stream` calls a custom destructor
[INFO] [stdout]     |                     `response_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 141 | ...           response_stream.send(QueryResponse::with_data(list_commands_response.into())).await.ok();
[INFO] [stdout]     |               -----------------------------------------------------------------------------------
[INFO] [stdout]     |               |                                                                             |
[INFO] [stdout]     |               |                                                                             this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |               |                                                                             `#10` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |               `#9` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 145 | ...       if let Ok(request) = next_command.parameter().clone().try_into() {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                this value will be stored in a temporary; let us call it `#32`
[INFO] [stdout]     |                                up until Edition 2021 `#32` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 149 | ...           let command_target                  = next_command.target();
[INFO] [stdout]     |                   --------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `command_target` calls a custom destructor
[INFO] [stdout]     |                   `command_target` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 153 | ...               let command_owner_stream = context.send::<RunCommand<TParameter, TResponse>>(*command_owner).ok();
[INFO] [stdout]     |                       --------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                       `#11` will be dropped later as of Edition 2024
[INFO] [stdout] 154 | ...
[INFO] [stdout] 155 | ...               if let Some(mut command_owner_stream) = command_owner_stream {
[INFO] [stdout]     |                               ------------------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                               `#12` will be dropped later as of Edition 2024
[INFO] [stdout] 156 | ...                   if let Ok(()) = command_owner_stream.send(next_command).await {
[INFO] [stdout]     |                                       ---------------------------------------------
[INFO] [stdout]     |                                       |                                       |
[INFO] [stdout]     |                                       |                                       this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                                       |                                       `#14` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                                       `#13` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 169 | ...               let description_command_response    = QueryResponse::with_data(response.into());
[INFO] [stdout]     |                       ----------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `description_command_response` calls a custom destructor
[INFO] [stdout]     |                       `description_command_response` will be dropped later as of Edition 2024
[INFO] [stdout] 170 | ...               let response_stream                 = context.send::<QueryResponse<TResponse>>(command_target.clone());
[INFO] [stdout]     |                       ---------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                       `#15` will be dropped later as of Edition 2024
[INFO] [stdout] 171 | ...
[INFO] [stdout] 172 | ...               if let Ok(mut response_stream) = response_stream {
[INFO] [stdout]     |                             -------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                             `#16` will be dropped later as of Edition 2024
[INFO] [stdout] 173 | ...                   response_stream.send(description_command_response).await.ok();
[INFO] [stdout]     |                       --------------------------------------------------------
[INFO] [stdout]     |                       |                                                  |
[INFO] [stdout]     |                       |                                                  this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |                       |                                                  `#18` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                       `#17` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 180 | ...               if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(command_target) {
[INFO] [stdout]     |                             -------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |                             `#19` will be dropped later as of Edition 2024
[INFO] [stdout] 181 | ...                   response_stream.send(QueryResponse::with_data(CommandError::CommandFailedToRespond(command_name).into())).await.ok();
[INFO] [stdout]     |                       ---------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |                       |                                                                                                         |
[INFO] [stdout]     |                       |                                                                                                         this value will be stored in a temporary; let us call it `#21`
[INFO] [stdout]     |                       |                                                                                                         `#21` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#20`
[INFO] [stdout]     |                       `#20` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 185 | ...   } else if let Some(command_owner_stream) = command_owner_stream {
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] 186 | ...       // Forward the command to the target stream
[INFO] [stdout] 187 | ...       let mut command_owner_stream = command_owner_stream;
[INFO] [stdout]     |               ------------------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#22`
[INFO] [stdout]     |               `#22` will be dropped later as of Edition 2024
[INFO] [stdout] 188 | ...       let command_target  = next_command.target();
[INFO] [stdout]     |               --------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#23`
[INFO] [stdout]     |               `#23` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 191 | ...       match command_owner_stream.send(next_command).await { Ok(()) => {
[INFO] [stdout]     |                 ---------------------------------------------
[INFO] [stdout]     |                 |                                       |
[INFO] [stdout]     |                 |                                       this value will be stored in a temporary; let us call it `#25`
[INFO] [stdout]     |                 |                                       `#25` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#24`
[INFO] [stdout]     |                 `#24` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 195 | ...           if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(command_target) {
[INFO] [stdout]     |                         -------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#26`
[INFO] [stdout]     |                         `#26` will be dropped later as of Edition 2024
[INFO] [stdout] 196 | ...               response_stream.send(QueryResponse::with_data(CommandError::CommandFailedToRespond(command_name).into())).await.ok();
[INFO] [stdout]     |                   ---------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |                   |                                                                                                         |
[INFO] [stdout]     |                   |                                                                                                         this value will be stored in a temporary; let us call it `#28`
[INFO] [stdout]     |                   |                                                                                                         `#28` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#27`
[INFO] [stdout]     |                   `#27` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 201 | ...       if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(next_command.target()) {
[INFO] [stdout]     |                     -------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#29`
[INFO] [stdout]     |                     `#29` will be dropped later as of Edition 2024
[INFO] [stdout] 202 | ...           let command_name = next_command.name().to_string();
[INFO] [stdout] 203 | ...           response_stream.send(QueryResponse::with_data(CommandError::CommandNotFound(command_name).into())).await.ok();
[INFO] [stdout]     |               --------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |               |                                                                                                  |
[INFO] [stdout]     |               |                                                                                                  this value will be stored in a temporary; let us call it `#31`
[INFO] [stdout]     |               |                                                                                                  `#31` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#30`
[INFO] [stdout]     |               `#30` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_command` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_owner_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `response_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#11` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `description_command_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#17` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#18` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#20` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#21` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#22` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#23` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#24` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#25` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#26` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#26` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#26` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#27` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#28` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#29` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#29` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#29` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#30` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#31` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/commands/dispatcher.rs:195:50
[INFO] [stdout]     |
[INFO] [stdout]  50 | ... let Some(next_command) = input.next().await {
[INFO] [stdout]     |              ------------                 -----
[INFO] [stdout]     |              |                            |
[INFO] [stdout]     |              |                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              |                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |              `next_command` calls a custom destructor
[INFO] [stdout]     |              `next_command` will be dropped later as of Edition 2024
[INFO] [stdout]  51 | .../ Try to fetch the stream to send queries to the command owner
[INFO] [stdout]  52 | ...et mut command_owner_stream = commands.get(next_command.name())
[INFO] [stdout]     |       ------------------------
[INFO] [stdout]     |       |
[INFO] [stdout]     |       `command_owner_stream` calls a custom destructor
[INFO] [stdout]     |       `command_owner_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  61 | ...   let scene_status = context.spawn_query(ReadCommand::default(), Query::<SceneUpdate>::with_no_target(), ());
[INFO] [stdout]     |           ------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `scene_status` calls a custom destructor
[INFO] [stdout]     |           `scene_status` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  66 | ...       if let Ok(mut response) = context.send(next_command.target())
[INFO] [stdout]     |                     ------------    -----------------------------------
[INFO] [stdout]     |                     |               |
[INFO] [stdout]     |                     |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                     |               `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                     `response` calls a custom destructor
[INFO] [stdout]     |                     `response` will be dropped later as of Edition 2024
[INFO] [stdout]  67 | ...       {
[INFO] [stdout]  68 | ...           response.send(TResponse::from(CommandError::CannotQueryScene)).await.ok();
[INFO] [stdout]     |               --------------------------------------------------------------------
[INFO] [stdout]     |               |                                                              |
[INFO] [stdout]     |               |                                                              this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |               |                                                              `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |               `__awaitee` calls a custom destructor
[INFO] [stdout]     |               `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  75 | ...   let scene_status        = scene_status.collect::<Vec<_>>().await;
[INFO] [stdout]     |           ------------          --------------------------------------
[INFO] [stdout]     |           |                     |                                |
[INFO] [stdout]     |           |                     |                                this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |           |                     |                                `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |           |                     this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |           |                     `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |           `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 103 | ...           let mut supported_commands = supported_commands;
[INFO] [stdout]     |                   ----------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `supported_commands` calls a custom destructor
[INFO] [stdout]     |                   `supported_commands` will be dropped later as of Edition 2024
[INFO] [stdout] 104 | ...           while let Some(cmd) = supported_commands.next().await {
[INFO] [stdout]     |                                                               -----
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                                               `#7` will be dropped later as of Edition 2024
[INFO] [stdout] 105 | ...               // Convert to a list command response
[INFO] [stdout] 106 | ...               let cmd: ListCommandResponse = match cmd.try_into() { Ok(cmd) => { cmd } _ => { continue; }};
[INFO] [stdout]     |                                                        --------------
[INFO] [stdout]     |                                                        |
[INFO] [stdout]     |                                                        this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                                                        `#8` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 134 | ...   if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(next_command.target()) {
[INFO] [stdout]     |                 -------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `response_stream` calls a custom destructor
[INFO] [stdout]     |                 `response_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 141 | ...       response_stream.send(QueryResponse::with_data(list_commands_response.into())).await.ok();
[INFO] [stdout]     |           -----------------------------------------------------------------------------------
[INFO] [stdout]     |           |                                                                             |
[INFO] [stdout]     |           |                                                                             this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |           |                                                                             `#10` will be dropped later as of Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |           `#9` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 149 | ...       let command_target                  = next_command.target();
[INFO] [stdout]     |               --------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `command_target` calls a custom destructor
[INFO] [stdout]     |               `command_target` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 153 | ...           let command_owner_stream = context.send::<RunCommand<TParameter, TResponse>>(*command_owner).ok();
[INFO] [stdout]     |                   --------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                   `#11` will be dropped later as of Edition 2024
[INFO] [stdout] 154 | ...
[INFO] [stdout] 155 | ...           if let Some(mut command_owner_stream) = command_owner_stream {
[INFO] [stdout]     |                           ------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                           `#12` will be dropped later as of Edition 2024
[INFO] [stdout] 156 | ...               if let Ok(()) = command_owner_stream.send(next_command).await {
[INFO] [stdout]     |                                   ---------------------------------------------
[INFO] [stdout]     |                                   |                                       |
[INFO] [stdout]     |                                   |                                       this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                                   |                                       `#14` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                   this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                                   `#13` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 169 | ...           let description_command_response    = QueryResponse::with_data(response.into());
[INFO] [stdout]     |                   ----------------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `description_command_response` calls a custom destructor
[INFO] [stdout]     |                   `description_command_response` will be dropped later as of Edition 2024
[INFO] [stdout] 170 | ...           let response_stream                 = context.send::<QueryResponse<TResponse>>(command_target.clone());
[INFO] [stdout]     |                   ---------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                   `#15` will be dropped later as of Edition 2024
[INFO] [stdout] 171 | ...
[INFO] [stdout] 172 | ...           if let Ok(mut response_stream) = response_stream {
[INFO] [stdout]     |                         -------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                         `#16` will be dropped later as of Edition 2024
[INFO] [stdout] 173 | ...               response_stream.send(description_command_response).await.ok();
[INFO] [stdout]     |                   --------------------------------------------------------
[INFO] [stdout]     |                   |                                                  |
[INFO] [stdout]     |                   |                                                  this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |                   |                                                  `#18` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                   `#17` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 180 | ...           if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(command_target) {
[INFO] [stdout]     |                         -------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |                         `#19` will be dropped later as of Edition 2024
[INFO] [stdout] 181 | ...               response_stream.send(QueryResponse::with_data(CommandError::CommandFailedToRespond(command_name).into())).await.ok();
[INFO] [stdout]     |                   ---------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |                   |                                                                                                         |
[INFO] [stdout]     |                   |                                                                                                         this value will be stored in a temporary; let us call it `#21`
[INFO] [stdout]     |                   |                                                                                                         `#21` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#20`
[INFO] [stdout]     |                   `#20` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 187 | ...   let mut command_owner_stream = command_owner_stream;
[INFO] [stdout]     |           ------------------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#22`
[INFO] [stdout]     |           `#22` will be dropped later as of Edition 2024
[INFO] [stdout] 188 | ...   let command_target  = next_command.target();
[INFO] [stdout]     |           --------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#23`
[INFO] [stdout]     |           `#23` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 191 | ...   match command_owner_stream.send(next_command).await { Ok(()) => {
[INFO] [stdout]     |             ---------------------------------------------
[INFO] [stdout]     |             |                                       |
[INFO] [stdout]     |             |                                       this value will be stored in a temporary; let us call it `#25`
[INFO] [stdout]     |             |                                       `#25` will be dropped later as of Edition 2024
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#24`
[INFO] [stdout]     |             `#24` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 195 | ...       if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(command_target) {
[INFO] [stdout]     |                     -------------------    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |                      |
[INFO] [stdout]     |                     |                      this value will be stored in a temporary; let us call it `#32`
[INFO] [stdout]     |                     |                      up until Edition 2021 `#32` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#26`
[INFO] [stdout]     |                     `#26` will be dropped later as of Edition 2024
[INFO] [stdout] 196 | ...           response_stream.send(QueryResponse::with_data(CommandError::CommandFailedToRespond(command_name).into())).await.ok();
[INFO] [stdout]     |               ---------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |               |                                                                                                         |
[INFO] [stdout]     |               |                                                                                                         this value will be stored in a temporary; let us call it `#28`
[INFO] [stdout]     |               |                                                                                                         `#28` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#27`
[INFO] [stdout]     |               `#27` will be dropped later as of Edition 2024
[INFO] [stdout] 197 | ...       }
[INFO] [stdout] 198 | ...   }}
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout] 201 | ...   if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(next_command.target()) {
[INFO] [stdout]     |                 -------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#29`
[INFO] [stdout]     |                 `#29` will be dropped later as of Edition 2024
[INFO] [stdout] 202 | ...       let command_name = next_command.name().to_string();
[INFO] [stdout] 203 | ...       response_stream.send(QueryResponse::with_data(CommandError::CommandNotFound(command_name).into())).await.ok();
[INFO] [stdout]     |           --------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |           |                                                                                                  |
[INFO] [stdout]     |           |                                                                                                  this value will be stored in a temporary; let us call it `#31`
[INFO] [stdout]     |           |                                                                                                  `#31` will be dropped later as of Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#30`
[INFO] [stdout]     |           `#30` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#32` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#32` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#32` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_command` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_owner_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `response_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#11` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `description_command_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#17` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#18` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#20` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#21` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#22` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#23` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#24` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#25` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#26` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#26` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#26` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#27` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#28` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#29` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#29` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#29` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#30` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#31` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/commands/dispatcher.rs:191:19
[INFO] [stdout]     |
[INFO] [stdout] 187 |             let mut command_owner_stream = command_owner_stream;
[INFO] [stdout]     |                 ------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `command_owner_stream` calls a custom destructor
[INFO] [stdout]     |                 `command_owner_stream` will be dropped later as of Edition 2024
[INFO] [stdout] 188 |             let command_target  = next_command.target();
[INFO] [stdout]     |                 --------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `command_target` calls a custom destructor
[INFO] [stdout]     |                 `command_target` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 191 |             match command_owner_stream.send(next_command).await { Ok(()) => {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                   |                                       |
[INFO] [stdout]     |                   |                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   |                                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 199 |         } else {
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_owner_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `command_target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/commands/dispatcher.rs:201:46
[INFO] [stdout]     |
[INFO] [stdout]  50 | ...hile let Some(next_command) = input.next().await {
[INFO] [stdout]     |                  ------------                 -----
[INFO] [stdout]     |                  |                            |
[INFO] [stdout]     |                  |                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                  |                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                  `next_command` calls a custom destructor
[INFO] [stdout]     |                  `next_command` will be dropped later as of Edition 2024
[INFO] [stdout]  51 | ...   // Try to fetch the stream to send queries to the command owner
[INFO] [stdout]  52 | ...   let mut command_owner_stream = commands.get(next_command.name())
[INFO] [stdout]     |           ------------------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `command_owner_stream` calls a custom destructor
[INFO] [stdout]     |           `command_owner_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  61 | ...       let scene_status = context.spawn_query(ReadCommand::default(), Query::<SceneUpdate>::with_no_target(), ());
[INFO] [stdout]     |               ------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               `scene_status` calls a custom destructor
[INFO] [stdout]     |               `scene_status` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  66 | ...           if let Ok(mut response) = context.send(next_command.target())
[INFO] [stdout]     |                         ------------    -----------------------------------
[INFO] [stdout]     |                         |               |
[INFO] [stdout]     |                         |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                         |               `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                         `response` calls a custom destructor
[INFO] [stdout]     |                         `response` will be dropped later as of Edition 2024
[INFO] [stdout]  67 | ...           {
[INFO] [stdout]  68 | ...               response.send(TResponse::from(CommandError::CannotQueryScene)).await.ok();
[INFO] [stdout]     |                   --------------------------------------------------------------------
[INFO] [stdout]     |                   |                                                              |
[INFO] [stdout]     |                   |                                                              this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                   |                                                              `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  75 | ...       let scene_status        = scene_status.collect::<Vec<_>>().await;
[INFO] [stdout]     |               ------------          --------------------------------------
[INFO] [stdout]     |               |                     |                                |
[INFO] [stdout]     |               |                     |                                this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |               |                     |                                `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |               |                     this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |               |                     `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |               `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 103 | ...               let mut supported_commands = supported_commands;
[INFO] [stdout]     |                       ----------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `supported_commands` calls a custom destructor
[INFO] [stdout]     |                       `supported_commands` will be dropped later as of Edition 2024
[INFO] [stdout] 104 | ...               while let Some(cmd) = supported_commands.next().await {
[INFO] [stdout]     |                                                                   -----
[INFO] [stdout]     |                                                                   |
[INFO] [stdout]     |                                                                   this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                                                   `#7` will be dropped later as of Edition 2024
[INFO] [stdout] 105 | ...                   // Convert to a list command response
[INFO] [stdout] 106 | ...                   let cmd: ListCommandResponse = match cmd.try_into() { Ok(cmd) => { cmd } _ => { continue; }};
[INFO] [stdout]     |                                                            --------------
[INFO] [stdout]     |                                                            |
[INFO] [stdout]     |                                                            this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                                                            `#8` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 134 | ...       if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(next_command.target()) {
[INFO] [stdout]     |                     -------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `response_stream` calls a custom destructor
[INFO] [stdout]     |                     `response_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 141 | ...           response_stream.send(QueryResponse::with_data(list_commands_response.into())).await.ok();
[INFO] [stdout]     |               -----------------------------------------------------------------------------------
[INFO] [stdout]     |               |                                                                             |
[INFO] [stdout]     |               |                                                                             this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |               |                                                                             `#10` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |               `#9` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 149 | ...           let command_target                  = next_command.target();
[INFO] [stdout]     |                   --------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `command_target` calls a custom destructor
[INFO] [stdout]     |                   `command_target` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 153 | ...               let command_owner_stream = context.send::<RunCommand<TParameter, TResponse>>(*command_owner).ok();
[INFO] [stdout]     |                       --------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                       `#11` will be dropped later as of Edition 2024
[INFO] [stdout] 154 | ...
[INFO] [stdout] 155 | ...               if let Some(mut command_owner_stream) = command_owner_stream {
[INFO] [stdout]     |                               ------------------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                               `#12` will be dropped later as of Edition 2024
[INFO] [stdout] 156 | ...                   if let Ok(()) = command_owner_stream.send(next_command).await {
[INFO] [stdout]     |                                       ---------------------------------------------
[INFO] [stdout]     |                                       |                                       |
[INFO] [stdout]     |                                       |                                       this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                                       |                                       `#14` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                                       `#13` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 169 | ...               let description_command_response    = QueryResponse::with_data(response.into());
[INFO] [stdout]     |                       ----------------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `description_command_response` calls a custom destructor
[INFO] [stdout]     |                       `description_command_response` will be dropped later as of Edition 2024
[INFO] [stdout] 170 | ...               let response_stream                 = context.send::<QueryResponse<TResponse>>(command_target.clone());
[INFO] [stdout]     |                       ---------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                       `#15` will be dropped later as of Edition 2024
[INFO] [stdout] 171 | ...
[INFO] [stdout] 172 | ...               if let Ok(mut response_stream) = response_stream {
[INFO] [stdout]     |                             -------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                             `#16` will be dropped later as of Edition 2024
[INFO] [stdout] 173 | ...                   response_stream.send(description_command_response).await.ok();
[INFO] [stdout]     |                       --------------------------------------------------------
[INFO] [stdout]     |                       |                                                  |
[INFO] [stdout]     |                       |                                                  this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |                       |                                                  `#18` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                       `#17` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 180 | ...               if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(command_target) {
[INFO] [stdout]     |                             -------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |                             `#19` will be dropped later as of Edition 2024
[INFO] [stdout] 181 | ...                   response_stream.send(QueryResponse::with_data(CommandError::CommandFailedToRespond(command_name).into())).await.ok();
[INFO] [stdout]     |                       ---------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |                       |                                                                                                         |
[INFO] [stdout]     |                       |                                                                                                         this value will be stored in a temporary; let us call it `#21`
[INFO] [stdout]     |                       |                                                                                                         `#21` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#20`
[INFO] [stdout]     |                       `#20` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 187 | ...       let mut command_owner_stream = command_owner_stream;
[INFO] [stdout]     |               ------------------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#22`
[INFO] [stdout]     |               `#22` will be dropped later as of Edition 2024
[INFO] [stdout] 188 | ...       let command_target  = next_command.target();
[INFO] [stdout]     |               --------------
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#23`
[INFO] [stdout]     |               `#23` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 191 | ...       match command_owner_stream.send(next_command).await { Ok(()) => {
[INFO] [stdout]     |                 ---------------------------------------------
[INFO] [stdout]     |                 |                                       |
[INFO] [stdout]     |                 |                                       this value will be stored in a temporary; let us call it `#25`
[INFO] [stdout]     |                 |                                       `#25` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#24`
[INFO] [stdout]     |                 `#24` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 195 | ...           if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(command_target) {
[INFO] [stdout]     |                         -------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#26`
[INFO] [stdout]     |                         `#26` will be dropped later as of Edition 2024
[INFO] [stdout] 196 | ...               response_stream.send(QueryResponse::with_data(CommandError::CommandFailedToRespond(command_name).into())).await.ok();
[INFO] [stdout]     |                   ---------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |                   |                                                                                                         |
[INFO] [stdout]     |                   |                                                                                                         this value will be stored in a temporary; let us call it `#28`
[INFO] [stdout]     |                   |                                                                                                         `#28` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#27`
[INFO] [stdout]     |                   `#27` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 201 | ...       if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(next_command.target()) {
[INFO] [stdout]     |                     -------------------    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |                      |
[INFO] [stdout]     |                     |                      this value will be stored in a temporary; let us call it `#32`
[INFO] [stdout]     |                     |                      up until Edition 2021 `#32` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#29`
[INFO] [stdout]     |                     `#29` will be dropped later as of Edition 2024
[INFO] [stdout] 202 | ...           let command_name = next_command.name().to_string();
[INFO] [stdout] 203 | ...           response_stream.send(QueryResponse::with_data(CommandError::CommandNotFound(command_name).into())).await.ok();
[INFO] [stdout]     |               --------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |               |                                                                                                  |
[INFO] [stdout]     |               |                                                                                                  this value will be stored in a temporary; let us call it `#31`
[INFO] [stdout]     |               |                                                                                                  `#31` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#30`
[INFO] [stdout]     |               `#30` will be dropped later as of Edition 2024
[INFO] [stdout] 204 | ...       }
[INFO] [stdout] 205 | ...   }
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#32` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#32` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#32` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_command` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_owner_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `response_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#11` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `description_command_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#17` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#18` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#20` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#21` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#22` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#23` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#24` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#25` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#26` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#26` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#26` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#27` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#28` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#29` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#29` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#29` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#30` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#31` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/commands/dispatcher.rs:50:36
[INFO] [stdout]     |
[INFO] [stdout]  50 |     while let Some(next_command) = input.next().await {
[INFO] [stdout]     |                    ------------    ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                    |               |            |
[INFO] [stdout]     |                    |               |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                    |               |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    |               this value will be stored in a temporary; let us call it `#32`
[INFO] [stdout]     |                    |               up until Edition 2021 `#32` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    `next_command` calls a custom destructor
[INFO] [stdout]     |                    `next_command` will be dropped later as of Edition 2024
[INFO] [stdout]  51 |         // Try to fetch the stream to send queries to the command owner
[INFO] [stdout]  52 |         let mut command_owner_stream = commands.get(next_command.name())
[INFO] [stdout]     |             ------------------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `command_owner_stream` calls a custom destructor
[INFO] [stdout]     |             `command_owner_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  61 |             let scene_status = context.spawn_query(ReadCommand::default(), Query::<SceneUpdate>::with_no_target(), ());
[INFO] [stdout]     |                 ------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `scene_status` calls a custom destructor
[INFO] [stdout]     |                 `scene_status` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  66 |                 if let Ok(mut response) = context.send(next_command.target())
[INFO] [stdout]     |                           ------------    -----------------------------------
[INFO] [stdout]     |                           |               |
[INFO] [stdout]     |                           |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                           |               `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                           `response` calls a custom destructor
[INFO] [stdout]     |                           `response` will be dropped later as of Edition 2024
[INFO] [stdout]  67 |                 {
[INFO] [stdout]  68 |                     response.send(TResponse::from(CommandError::CannotQueryScene)).await.ok();
[INFO] [stdout]     |                     --------------------------------------------------------------------
[INFO] [stdout]     |                     |                                                              |
[INFO] [stdout]     |                     |                                                              this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                     |                                                              `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                     `__awaitee` calls a custom destructor
[INFO] [stdout]     |                     `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  75 |             let scene_status        = scene_status.collect::<Vec<_>>().await;
[INFO] [stdout]     |                 ------------          --------------------------------------
[INFO] [stdout]     |                 |                     |                                |
[INFO] [stdout]     |                 |                     |                                this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                 |                     |                                `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 |                     this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                 |                     `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                 `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 103 |                     let mut supported_commands = supported_commands;
[INFO] [stdout]     |                         ----------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `supported_commands` calls a custom destructor
[INFO] [stdout]     |                         `supported_commands` will be dropped later as of Edition 2024
[INFO] [stdout] 104 |                     while let Some(cmd) = supported_commands.next().await {
[INFO] [stdout]     |                                                                     -----
[INFO] [stdout]     |                                                                     |
[INFO] [stdout]     |                                                                     this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                                                     `#7` will be dropped later as of Edition 2024
[INFO] [stdout] 105 |                         // Convert to a list command response
[INFO] [stdout] 106 |                         let cmd: ListCommandResponse = match cmd.try_into() { Ok(cmd) => { cmd } _ => { continue; }};
[INFO] [stdout]     |                                                              --------------
[INFO] [stdout]     |                                                              |
[INFO] [stdout]     |                                                              this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                                                              `#8` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 134 |             if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(next_command.target()) {
[INFO] [stdout]     |                       -------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `response_stream` calls a custom destructor
[INFO] [stdout]     |                       `response_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 141 |                 response_stream.send(QueryResponse::with_data(list_commands_response.into())).await.ok();
[INFO] [stdout]     |                 -----------------------------------------------------------------------------------
[INFO] [stdout]     |                 |                                                                             |
[INFO] [stdout]     |                 |                                                                             this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                 |                                                                             `#10` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                 `#9` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 149 |                 let command_target                  = next_command.target();
[INFO] [stdout]     |                     --------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `command_target` calls a custom destructor
[INFO] [stdout]     |                     `command_target` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 153 |                     let command_owner_stream = context.send::<RunCommand<TParameter, TResponse>>(*command_owner).ok();
[INFO] [stdout]     |                         --------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                         `#11` will be dropped later as of Edition 2024
[INFO] [stdout] 154 |
[INFO] [stdout] 155 |                     if let Some(mut command_owner_stream) = command_owner_stream {
[INFO] [stdout]     |                                 ------------------------
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                                 `#12` will be dropped later as of Edition 2024
[INFO] [stdout] 156 |                         if let Ok(()) = command_owner_stream.send(next_command).await {
[INFO] [stdout]     |                                         ---------------------------------------------
[INFO] [stdout]     |                                         |                                       |
[INFO] [stdout]     |                                         |                                       this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                                         |                                       `#14` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                         this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                                         `#13` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 169 |                     let description_command_response    = QueryResponse::with_data(response.into());
[INFO] [stdout]     |                         ----------------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `description_command_response` calls a custom destructor
[INFO] [stdout]     |                         `description_command_response` will be dropped later as of Edition 2024
[INFO] [stdout] 170 |                     let response_stream                 = context.send::<QueryResponse<TResponse>>(command_target.clone());
[INFO] [stdout]     |                         ---------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                         `#15` will be dropped later as of Edition 2024
[INFO] [stdout] 171 |
[INFO] [stdout] 172 |                     if let Ok(mut response_stream) = response_stream {
[INFO] [stdout]     |                               -------------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                               `#16` will be dropped later as of Edition 2024
[INFO] [stdout] 173 |                         response_stream.send(description_command_response).await.ok();
[INFO] [stdout]     |                         --------------------------------------------------------
[INFO] [stdout]     |                         |                                                  |
[INFO] [stdout]     |                         |                                                  this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |                         |                                                  `#18` will be dropped later as of Edition 2024
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                         `#17` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 180 |                     if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(command_target) {
[INFO] [stdout]     |                               -------------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |                               `#19` will be dropped later as of Edition 2024
[INFO] [stdout] 181 |                         response_stream.send(QueryResponse::with_data(CommandError::CommandFailedToRespond(command_name).into())).await.ok();
[INFO] [stdout]     |                         ---------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |                         |                                                                                                         |
[INFO] [stdout]     |                         |                                                                                                         this value will be stored in a temporary; let us call it `#21`
[INFO] [stdout]     |                         |                                                                                                         `#21` will be dropped later as of Edition 2024
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#20`
[INFO] [stdout]     |                         `#20` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 187 |             let mut command_owner_stream = command_owner_stream;
[INFO] [stdout]     |                 ------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#22`
[INFO] [stdout]     |                 `#22` will be dropped later as of Edition 2024
[INFO] [stdout] 188 |             let command_target  = next_command.target();
[INFO] [stdout]     |                 --------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#23`
[INFO] [stdout]     |                 `#23` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 191 |             match command_owner_stream.send(next_command).await { Ok(()) => {
[INFO] [stdout]     |                   ---------------------------------------------
[INFO] [stdout]     |                   |                                       |
[INFO] [stdout]     |                   |                                       this value will be stored in a temporary; let us call it `#25`
[INFO] [stdout]     |                   |                                       `#25` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#24`
[INFO] [stdout]     |                   `#24` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 195 |                 if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(command_target) {
[INFO] [stdout]     |                           -------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#26`
[INFO] [stdout]     |                           `#26` will be dropped later as of Edition 2024
[INFO] [stdout] 196 |                     response_stream.send(QueryResponse::with_data(CommandError::CommandFailedToRespond(command_name).into())).await.ok();
[INFO] [stdout]     |                     ---------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |                     |                                                                                                         |
[INFO] [stdout]     |                     |                                                                                                         this value will be stored in a temporary; let us call it `#28`
[INFO] [stdout]     |                     |                                                                                                         `#28` will be dropped later as of Edition 2024
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#27`
[INFO] [stdout]     |                     `#27` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 201 |             if let Ok(mut response_stream) = context.send::<QueryResponse<TResponse>>(next_command.target()) {
[INFO] [stdout]     |                       -------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#29`
[INFO] [stdout]     |                       `#29` will be dropped later as of Edition 2024
[INFO] [stdout] 202 |                 let command_name = next_command.name().to_string();
[INFO] [stdout] 203 |                 response_stream.send(QueryResponse::with_data(CommandError::CommandNotFound(command_name).into())).await.ok();
[INFO] [stdout]     |                 --------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |                 |                                                                                                  |
[INFO] [stdout]     |                 |                                                                                                  this value will be stored in a temporary; let us call it `#31`
[INFO] [stdout]     |                 |                                                                                                  `#31` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#30`
[INFO] [stdout]     |                 `#30` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 206 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#32` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_command` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_owner_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `response_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#11` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `description_command_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#17` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#18` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#20` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#21` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#22` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#22` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#23` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#24` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#25` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#26` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#26` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#26` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#27` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#28` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#29` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#29` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#29` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#30` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#31` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/commands/dispatcher.rs:191:19
[INFO] [stdout]     |
[INFO] [stdout] 187 |             let mut command_owner_stream = command_owner_stream;
[INFO] [stdout]     |                 ------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `command_owner_stream` calls a custom destructor
[INFO] [stdout]     |                 `command_owner_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 191 |             match command_owner_stream.send(next_command).await { Ok(()) => {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                   |                                       |
[INFO] [stdout]     |                   |                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   |                                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 199 |         } else {
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_owner_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/commands/dispatcher.rs:191:59
[INFO] [stdout]     |
[INFO] [stdout] 187 |             let mut command_owner_stream = command_owner_stream;
[INFO] [stdout]     |                 ------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `command_owner_stream` calls a custom destructor
[INFO] [stdout]     |                 `command_owner_stream` will be dropped later as of Edition 2024
[INFO] [stdout] 188 |             let command_target  = next_command.target();
[INFO] [stdout]     |                 --------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `command_target` calls a custom destructor
[INFO] [stdout]     |                 `command_target` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 191 |             match command_owner_stream.send(next_command).await { Ok(()) => {
[INFO] [stdout]     |                                                           ^^^^^
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 199 |         } else {
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_owner_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `command_owner_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `command_target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/commands/launcher.rs:133:32
[INFO] [stdout]     |
[INFO] [stdout]  99 | ...le let Some(run_request) = input.next().await {
[INFO] [stdout]     |                -----------                 -----
[INFO] [stdout]     |                |                           |
[INFO] [stdout]     |                |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                |                           `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                `run_request` calls a custom destructor
[INFO] [stdout]     |                `run_request` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 108 | ...     let list_commands_response  = QueryResponse::with_data(response.into());
[INFO] [stdout]     |             ----------------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `list_commands_response` calls a custom destructor
[INFO] [stdout]     |             `list_commands_response` will be dropped later as of Edition 2024
[INFO] [stdout] 109 | ...     let response_stream         = context.send::<QueryResponse<TResponse>>(command_target);
[INFO] [stdout]     |             ---------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `response_stream` calls a custom destructor
[INFO] [stdout]     |             `response_stream` will be dropped later as of Edition 2024
[INFO] [stdout] 110 | ...     
[INFO] [stdout] 111 | ...     if let Ok(mut response_stream) = response_stream {
[INFO] [stdout]     |                   -------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 112 | ...         response_stream.send(list_commands_response).await.ok();
[INFO] [stdout]     |             --------------------------------------------------
[INFO] [stdout]     |             |                                            |
[INFO] [stdout]     |             |                                            this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |             |                                            `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |             `__awaitee` calls a custom destructor
[INFO] [stdout]     |             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 115 | ...     let command_target  = run_request.target();
[INFO] [stdout]     |             --------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `command_target` calls a custom destructor
[INFO] [stdout]     |             `command_target` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 118 | ...     let request = match run_request.parameter().clone().try_into() { Ok(request) => { request } _ => { continue; }};
[INFO] [stdout]     |                             ------------------------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                             `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 127 | ...     let description_command_response    = QueryResponse::with_data(response.into());
[INFO] [stdout]     |             ----------------------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `description_command_response` calls a custom destructor
[INFO] [stdout]     |             `description_command_response` will be dropped later as of Edition 2024
[INFO] [stdout] 128 | ...     let response_stream                 = context.send::<QueryResponse<TResponse>>(command_target);
[INFO] [stdout]     |             ---------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |             `#5` will be dropped later as of Edition 2024
[INFO] [stdout] 129 | ...
[INFO] [stdout] 130 | ...     if let Ok(mut response_stream) = response_stream {
[INFO] [stdout]     |                   -------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                   `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 131 | ...         response_stream.send(description_command_response).await.ok();
[INFO] [stdout]     |             --------------------------------------------------------
[INFO] [stdout]     |             |                                                  |
[INFO] [stdout]     |             |                                                  this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |             |                                                  `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |             `#7` will be dropped later as of Edition 2024
[INFO] [stdout] 132 | ...     }
[INFO] [stdout] 133 | ... } else { match self.commands.get(run_request.name()).cloned() { Some(command) => {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |                    up until Edition 2021 `#18` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 134 | ...     // Run the command
[INFO] [stdout] 135 | ...     let command_target = run_request.target();
[INFO] [stdout]     |             --------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |             `#9` will be dropped later as of Edition 2024
[INFO] [stdout] 136 | ...     let command_output = context.spawn_command(FnCommand::<(), TResponse>::new(move |_, context| {
[INFO] [stdout]     |             --------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `command_output` calls a custom destructor
[INFO] [stdout]     |             `command_output` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 145 | ...     if let Ok(command_output) = command_output {
[INFO] [stdout]     |                   --------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                   `#10` will be dropped later as of Edition 2024
[INFO] [stdout] 146 | ...         // Send the output to the target
[INFO] [stdout] 147 | ...         let response = context.send::<QueryResponse<TResponse>>(command_target);
[INFO] [stdout]     |                 --------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `response` calls a custom destructor
[INFO] [stdout]     |                 `response` will be dropped later as of Edition 2024
[INFO] [stdout] 148 | ...         
[INFO] [stdout] 149 | ...         if let Ok(mut response) = response {
[INFO] [stdout]     |                       ------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                       `#11` will be dropped later as of Edition 2024
[INFO] [stdout] 150 | ...             response.send(QueryResponse::with_stream(command_output)).await.ok();
[INFO] [stdout]     |                 ---------------------------------------------------------------
[INFO] [stdout]     |                 |                                                         |
[INFO] [stdout]     |                 |                                                         this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                 |                                                         `#13` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                 `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 157 | ...     let response        = context.send::<QueryResponse<TResponse>>(command_target);
[INFO] [stdout]     |             --------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |             `#14` will be dropped later as of Edition 2024
[INFO] [stdout] 158 | ...     
[INFO] [stdout] 159 | ...     if let Ok(mut response) = response {
[INFO] [stdout]     |                   ------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                   `#15` will be dropped later as of Edition 2024
[INFO] [stdout] 160 | ...         response.send(QueryResponse::with_iterator([TResponse::from(CommandError::CommandNotFound(command_name))])).await.ok();
[INFO] [stdout]     |             -----------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |             |                                                                                                           |
[INFO] [stdout]     |             |                                                                                                           this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |             |                                                                                                           `#17` will be dropped later as of Edition 2024
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |             `#16` will be dropped later as of Edition 2024
[INFO] [stdout] 161 | ...     }
[INFO] [stdout] 162 | ... }}}
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#18` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `run_request` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `list_commands_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `response_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `description_command_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#11` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#14` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#14` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#17` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/commands/launcher.rs:99:43
[INFO] [stdout]     |
[INFO] [stdout]  99 | ...   while let Some(run_request) = input.next().await {
[INFO] [stdout]     |                      -----------    ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                      |              |            |
[INFO] [stdout]     |                      |              |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                      |              |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                      |              this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |                      |              up until Edition 2021 `#18` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                      `run_request` calls a custom destructor
[INFO] [stdout]     |                      `run_request` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 108 | ...           let list_commands_response  = QueryResponse::with_data(response.into());
[INFO] [stdout]     |                   ----------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `list_commands_response` calls a custom destructor
[INFO] [stdout]     |                   `list_commands_response` will be dropped later as of Edition 2024
[INFO] [stdout] 109 | ...           let response_stream         = context.send::<QueryResponse<TResponse>>(command_target);
[INFO] [stdout]     |                   ---------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `response_stream` calls a custom destructor
[INFO] [stdout]     |                   `response_stream` will be dropped later as of Edition 2024
[INFO] [stdout] 110 | ...           
[INFO] [stdout] 111 | ...           if let Ok(mut response_stream) = response_stream {
[INFO] [stdout]     |                         -------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                         `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 112 | ...               response_stream.send(list_commands_response).await.ok();
[INFO] [stdout]     |                   --------------------------------------------------
[INFO] [stdout]     |                   |                                            |
[INFO] [stdout]     |                   |                                            this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                   |                                            `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 115 | ...           let command_target  = run_request.target();
[INFO] [stdout]     |                   --------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `command_target` calls a custom destructor
[INFO] [stdout]     |                   `command_target` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 118 | ...           let request = match run_request.parameter().clone().try_into() { Ok(request) => { request } _ => { continue; }};
[INFO] [stdout]     |                                   ------------------------------------------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                   `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 127 | ...           let description_command_response    = QueryResponse::with_data(response.into());
[INFO] [stdout]     |                   ----------------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `description_command_response` calls a custom destructor
[INFO] [stdout]     |                   `description_command_response` will be dropped later as of Edition 2024
[INFO] [stdout] 128 | ...           let response_stream                 = context.send::<QueryResponse<TResponse>>(command_target);
[INFO] [stdout]     |                   ---------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                   `#5` will be dropped later as of Edition 2024
[INFO] [stdout] 129 | ...
[INFO] [stdout] 130 | ...           if let Ok(mut response_stream) = response_stream {
[INFO] [stdout]     |                         -------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                         `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 131 | ...               response_stream.send(description_command_response).await.ok();
[INFO] [stdout]     |                   --------------------------------------------------------
[INFO] [stdout]     |                   |                                                  |
[INFO] [stdout]     |                   |                                                  this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                   |                                                  `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                   `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 135 | ...           let command_target = run_request.target();
[INFO] [stdout]     |                   --------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                   `#9` will be dropped later as of Edition 2024
[INFO] [stdout] 136 | ...           let command_output = context.spawn_command(FnCommand::<(), TResponse>::new(move |_, context| {
[INFO] [stdout]     |                   --------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `command_output` calls a custom destructor
[INFO] [stdout]     |                   `command_output` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 145 | ...           if let Ok(command_output) = command_output {
[INFO] [stdout]     |                         --------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                         `#10` will be dropped later as of Edition 2024
[INFO] [stdout] 146 | ...               // Send the output to the target
[INFO] [stdout] 147 | ...               let response = context.send::<QueryResponse<TResponse>>(command_target);
[INFO] [stdout]     |                       --------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `response` calls a custom destructor
[INFO] [stdout]     |                       `response` will be dropped later as of Edition 2024
[INFO] [stdout] 148 | ...               
[INFO] [stdout] 149 | ...               if let Ok(mut response) = response {
[INFO] [stdout]     |                             ------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                             `#11` will be dropped later as of Edition 2024
[INFO] [stdout] 150 | ...                   response.send(QueryResponse::with_stream(command_output)).await.ok();
[INFO] [stdout]     |                       ---------------------------------------------------------------
[INFO] [stdout]     |                       |                                                         |
[INFO] [stdout]     |                       |                                                         this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                       |                                                         `#13` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                       `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 157 | ...           let response        = context.send::<QueryResponse<TResponse>>(command_target);
[INFO] [stdout]     |                   --------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                   `#14` will be dropped later as of Edition 2024
[INFO] [stdout] 158 | ...           
[INFO] [stdout] 159 | ...           if let Ok(mut response) = response {
[INFO] [stdout]     |                         ------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                         `#15` will be dropped later as of Edition 2024
[INFO] [stdout] 160 | ...               response.send(QueryResponse::with_iterator([TResponse::from(CommandError::CommandNotFound(command_name))])).await.ok();
[INFO] [stdout]     |                   -----------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |                   |                                                                                                           |
[INFO] [stdout]     |                   |                                                                                                           this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                   |                                                                                                           `#17` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                   `#16` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 163 | ...   }
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#18` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `run_request` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `list_commands_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `response_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response_stream` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `description_command_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#11` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#14` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#14` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#17` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/guest/host_subprogram.rs:303:37
[INFO] [stdout]     |
[INFO] [stdout] 303 | ...   while let Some(input) = input_stream.next().await {
[INFO] [stdout]     |                      -----    ^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                      |        |                   |
[INFO] [stdout]     |                      |        |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                      |        |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                      |        this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                      |        up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                      `input` calls a custom destructor
[INFO] [stdout]     |                      `input` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 320 | ...       let encoded_input = input.to_guest_message(&HostSerializationContext(message_streams.clone(), message_actions.clone(), message_future_pile.clone())).m...
[INFO] [stdout]     |                                                       -------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |                                                       |
[INFO] [stdout]     |                                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 326 | ...   }
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:944:1
[INFO] [stdout]     |
[INFO] [stdout] 944 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/scene_core.rs:808:45
[INFO] [stdout]     |
[INFO] [stdout] 806 |                 let filter_output = filter_handle.target_stream_id_any()?;
[INFO] [stdout]     |                     -------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `filter_output` calls a custom destructor
[INFO] [stdout]     |                     `filter_output` will be dropped later as of Edition 2024
[INFO] [stdout] 807 |
[INFO] [stdout] 808 |                 match self.connections.get(&(source.clone(), filter_output.for_target(program_id))) { Some(filtered_redirect) => {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                             up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 818 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `filter_output` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> scene/src/host/scene_core.rs:1052:23
[INFO] [stdout]      |
[INFO] [stdout] 1043 |                 let mut core    = core.lock().unwrap();
[INFO] [stdout]      |                     --------
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `core` calls a custom destructor
[INFO] [stdout]      |                     `core` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1052 |                 match process.future.take() {
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1064 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `core` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/stream_id.rs:669:15
[INFO] [stdout]     |
[INFO] [stdout] 665 |         let serialization_context = Box::new(serialization_context);
[INFO] [stdout]     |             ---------------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `serialization_context` calls a custom destructor
[INFO] [stdout]     |             `serialization_context` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 669 |         match StreamTypeFunctions::send_guest_messages(&message_type) { Some(send_guest_messages) => {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 675 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/input_stream.rs:427:15
[INFO] [stdout]     |
[INFO] [stdout] 425 |         let mut core = self.core.lock().unwrap();
[INFO] [stdout]     |             --------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `core` calls a custom destructor
[INFO] [stdout]     |             `core` will be dropped later as of Edition 2024
[INFO] [stdout] 426 |
[INFO] [stdout] 427 |         match core.waiting_messages.pop_front() { Some((source, message)) => {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 464 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `core` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/input_stream.rs:477:15
[INFO] [stdout]     |
[INFO] [stdout] 475 |         let mut core = self.core.lock().unwrap();
[INFO] [stdout]     |             --------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `core` calls a custom destructor
[INFO] [stdout]     |             `core` will be dropped later as of Edition 2024
[INFO] [stdout] 476 |
[INFO] [stdout] 477 |         match core.waiting_messages.pop_front() { Some((source, message)) => {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 514 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `core` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/output_sink.rs:452:27
[INFO] [stdout]     |
[INFO] [stdout] 450 |                     let mut input_core = input_core.lock().unwrap();
[INFO] [stdout]     |                         --------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `input_core` calls a custom destructor
[INFO] [stdout]     |                         `input_core` will be dropped later as of Edition 2024
[INFO] [stdout] 451 |
[INFO] [stdout] 452 |                     match input_core.send(self.program_id, item) {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 502 |                 } _ => {
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `input_core` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/output_sink.rs:564:31
[INFO] [stdout]     |
[INFO] [stdout] 562 |                         let mut input_core = input_core.lock().unwrap();
[INFO] [stdout]     |                             --------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `input_core` calls a custom destructor
[INFO] [stdout]     |                             `input_core` will be dropped later as of Edition 2024
[INFO] [stdout] 563 |
[INFO] [stdout] 564 |                         match input_core.send(self.program_id, message) {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 593 |                     } _ => {
[INFO] [stdout]     |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `input_core` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking bon v3.6.1
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/filter.rs:196:40
[INFO] [stdout]     |
[INFO] [stdout] 196 |                 while let Some(item) = filter_stream.next().await {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                        |                    |
[INFO] [stdout]     |                                        |                    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                        |                    `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                        this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                        up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 197 |                     // Write to the core
[INFO] [stdout] 198 |                     let mut item = Some(item);
[INFO] [stdout]     |                         --------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `item` calls a custom destructor
[INFO] [stdout]     |                         `item` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 250 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/filter.rs:206:39
[INFO] [stdout]     |
[INFO] [stdout] 204 | ...                       let mut input_core = target_input_core.lock().unwrap();
[INFO] [stdout]     |                               --------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `input_core` calls a custom destructor
[INFO] [stdout]     |                               `input_core` will be dropped later as of Edition 2024
[INFO] [stdout] 205 | ...
[INFO] [stdout] 206 | ...                       match item.take() { Some(item_to_send) => {
[INFO] [stdout]     |                                 ^^^^^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                 up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 224 | ...                   } _ => {
[INFO] [stdout]     |                       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `input_core` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/src/host/filter.rs:203:35
[INFO] [stdout]     |
[INFO] [stdout] 202 |                           let (pending_item, waker) = {
[INFO] [stdout]     |  _____________________________________________________-
[INFO] [stdout] 203 | |                             match target_input_core.upgrade() { Some(target_input_core) => {
[INFO] [stdout]     | |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |                                   |
[INFO] [stdout]     | |                                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     | |                                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 204 | |                                 let mut input_core = target_input_core.lock().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 227 | |                             }}
[INFO] [stdout] 228 | |                         };
[INFO] [stdout]     | |                         -- now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |_________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                           `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl futures::Sink<TMessage, Error = flo_scene_guest::errors::SceneSendError<TMessage>>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> scene/src/host/scene.rs:108:86
[INFO] [stdout]     |
[INFO] [stdout] 108 | ...t: impl Into<StreamTarget>) -> Result<impl Sink<TMessage, Error=SceneSendError<TMessage>>, ConnectionError> 
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> scene/src/host/scene.rs:108:36
[INFO] [stdout]     |
[INFO] [stdout] 108 |     pub fn send_to_scene<TMessage>(&self, target: impl Into<StreamTarget>) -> Result<impl Sink<TMessage, Error=SceneSendError<TMess...
[INFO] [stdout]     |                                    ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> scene/src/host/scene.rs:108:51
[INFO] [stdout]     |
[INFO] [stdout] 108 |     pub fn send_to_scene<TMessage>(&self, target: impl Into<StreamTarget>) -> Result<impl Sink<TMessage, Error=SceneSendError<TMess...
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]     = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 108 -     pub fn send_to_scene<TMessage>(&self, target: impl Into<StreamTarget>) -> Result<impl Sink<TMessage, Error=SceneSendError<TMessage>>, ConnectionError> 
[INFO] [stdout] 108 +     pub fn send_to_scene<TMessage, T: Into<StreamTarget>>(&self, target: T) -> Result<impl Sink<TMessage, Error=SceneSendError<TMessage>> + use<TMessage, T>, ConnectionError> 
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl futures::Stream<Item = <TCommand as command_trait::Command>::Output> + 'static` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> scene/src/host/scene_context.rs:157:131
[INFO] [stdout]     |
[INFO] [stdout] 157 | ...+ Stream<Item=TCommand::Input>) -> Result<impl 'static + Stream<Item=TCommand::Output>, ConnectionError>
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> scene/src/host/scene_context.rs:157:36
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn spawn_command<TCommand>(&self, command: TCommand, input: impl 'static + Send + Stream<Item=TCommand::Input>) -> Result<i...
[INFO] [stdout]     |                                    ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> scene/src/host/scene_context.rs:157:69
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn spawn_command<TCommand>(&self, command: TCommand, input: impl 'static + Send + Stream<Item=TCommand::Input>) -> Result<i...
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 157 -     pub fn spawn_command<TCommand>(&self, command: TCommand, input: impl 'static + Send + Stream<Item=TCommand::Input>) -> Result<impl 'static + Stream<Item=TCommand::Output>, ConnectionError>
[INFO] [stdout] 157 +     pub fn spawn_command<TCommand, T: 'static + Send + Stream<Item = TCommand::Input>>(&self, command: TCommand, input: T) -> Result<impl 'static + Stream<Item=TCommand::Output> + use<TCommand, T>, ConnectionError>
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl futures::Stream<Item = <TCommand as command_trait::Command>::Output> + 'static` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> scene/src/host/scene_context.rs:241:175
[INFO] [stdout]     |
[INFO] [stdout] 241 | ...arget: impl Into<StreamTarget>) -> Result<impl 'static + Stream<Item=TCommand::Output>, ConnectionError>
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> scene/src/host/scene_context.rs:241:34
[INFO] [stdout]     |
[INFO] [stdout] 241 |     pub fn spawn_query<TCommand>(&self, command: TCommand, query: impl 'static + QueryRequest<ResponseData=TCommand::Input>, query_...
[INFO] [stdout]     |                                  ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> scene/src/host/scene_context.rs:241:67
[INFO] [stdout]     |
[INFO] [stdout] 241 | ...Command, query: impl 'static + QueryRequest<ResponseData=TCommand::Input>, query_target: impl Into<StreamTarget>) -> Result<impl...
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 241 -     pub fn spawn_query<TCommand>(&self, command: TCommand, query: impl 'static + QueryRequest<ResponseData=TCommand::Input>, query_target: impl Into<StreamTarget>) -> Result<impl 'static + Stream<Item=TCommand::Output>, ConnectionError>
[INFO] [stdout] 241 +     pub fn spawn_query<TCommand, T: 'static + QueryRequest<ResponseData = TCommand::Input>, U: Into<StreamTarget>>(&self, command: TCommand, query: T, query_target: U) -> Result<impl 'static + Stream<Item=TCommand::Output> + use<TCommand, T, U>, ConnectionError>
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl futures::Sink<TMessageType, Error = flo_scene_guest::errors::SceneSendError<TMessageType>>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> scene/src/host/serialization.rs:331:102
[INFO] [stdout]     |
[INFO] [stdout] 331 | ...erializedStreamTarget>) -> Result<impl Sink<TMessageType, Error=SceneSendError<TMessageType>>, ConnectionError>
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> scene/src/host/serialization.rs:331:42
[INFO] [stdout]     |
[INFO] [stdout] 331 |     pub fn send_serialized<TMessageType>(&self, target: impl Into<SerializedStreamTarget>) -> Result<impl Sink<TMessageType, Error=...
[INFO] [stdout]     |                                          ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> scene/src/host/serialization.rs:331:57
[INFO] [stdout]     |
[INFO] [stdout] 331 |     pub fn send_serialized<TMessageType>(&self, target: impl Into<SerializedStreamTarget>) -> Result<impl Sink<TMessageType, Error=...
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 331 -     pub fn send_serialized<TMessageType>(&self, target: impl Into<SerializedStreamTarget>) -> Result<impl Sink<TMessageType, Error=SceneSendError<TMessageType>>, ConnectionError>
[INFO] [stdout] 331 +     pub fn send_serialized<TMessageType, T: Into<SerializedStreamTarget>>(&self, target: T) -> Result<impl Sink<TMessageType, Error=SceneSendError<TMessageType>> + use<TMessageType, T>, ConnectionError>
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]     Checking backtrace v0.3.74
[INFO] [stderr]     Checking clap v4.5.37
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling zstd v0.13.3
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]     Checking cranelift-bforest v0.110.2
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling webpki-roots v0.26.8
[INFO] [stderr]     Checking crossbeam-queue v0.3.12
[INFO] [stderr]     Checking region v3.0.2
[INFO] [stderr]    Compiling filetime v0.2.25
[INFO] [stderr]     Checking memmap2 v0.6.2
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking typed-arena v2.0.2
[INFO] [stderr]    Compiling deflate64 v0.1.9
[INFO] [stderr]     Checking unicode-ident v1.0.18
[INFO] [stderr]     Checking base64 v0.22.1
[INFO] [stderr]     Checking entities v1.0.1
[INFO] [stderr]    Compiling constant_time_eq v0.3.1
[INFO] [stderr]     Checking shell-words v1.1.0
[INFO] [stderr]     Checking leb128fmt v0.1.0
[INFO] [stderr]     Checking comrak v0.38.0
[INFO] [stderr]     Checking ron v0.10.1
[INFO] [stderr]     Checking desync v0.8.2
[INFO] [stderr]     Checking shared-buffer v0.1.4
[INFO] [stderr]     Checking wasmer-vm v5.0.4
[INFO] [stderr]    Compiling tar v0.4.44
[INFO] [stderr]     Checking wasmparser v0.216.1
[INFO] [stderr]     Checking object v0.32.2
[INFO] [stderr]    Compiling xz v0.1.0
[INFO] [stderr]     Checking flo_stream v0.7.0
[INFO] [stderr]    Compiling ureq v2.12.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.28
[INFO] [stderr]    Compiling cmake v0.1.54
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]    Compiling proc-macro-error-attr2 v2.0.0
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]     Checking self_cell v1.2.0
[INFO] [stderr]     Checking unicode-width v0.2.0
[INFO] [stderr]    Compiling wasmer-compiler-cranelift v5.0.4
[INFO] [stderr]     Checking wast v229.0.0
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking flo_scene_pipe v0.2.1 (/opt/rustwide/workdir/pipe)
[INFO] [stderr]    Migrating pipe/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]    Compiling wasmer-derive v5.0.4
[INFO] [stderr]     Checking wasmer-compiler v5.0.4
[INFO] [stderr]    Compiling wasmer v5.0.4
[INFO] [stderr]     Checking wat v1.229.0
[INFO] [stderr]        Fixed pipe/src/commands/json_command_launcher.rs (1 fix)
[INFO] [stderr]        Fixed pipe/src/standard_json_commands/send.rs (1 fix)
[INFO] [stderr]        Fixed pipe/src/standard_json_commands/query.rs (1 fix)
[INFO] [stderr]        Fixed pipe/src/commands/command_program.rs (1 fix)
[INFO] [stderr]        Fixed pipe/src/standard_json_commands/echo.rs (1 fix)
[INFO] [stderr]        Fixed pipe/src/standard_json_commands/subscribe.rs (1 fix)
[INFO] [stderr]        Fixed pipe/src/standard_json_commands/help.rs (1 fix)
[INFO] [stderr]        Fixed pipe/src/parser.rs (3 fixes)
[INFO] [stderr]        Fixed pipe/src/parse_json.rs (5 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/socket.rs:175:34
[INFO] [stdout]     |
[INFO] [stdout] 175 |     while let Some(next_event) = input.next().await {
[INFO] [stdout]     |                    ----------    ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                    |             |            |
[INFO] [stdout]     |                    |             |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                    |             |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    |             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                    |             up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    `next_event` calls a custom destructor
[INFO] [stdout]     |                    `next_event` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 221 |                 context.send_message(socket_connection).await.ok();
[INFO] [stdout]     |                 ---------------------------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `__awaitee` calls a custom destructor
[INFO] [stdout]     |                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 224 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/tokenizer.rs:163:27
[INFO] [stdout]     |
[INFO] [stdout] 163 |                     match matcher.try_match(&self.lookahead_chars, eof) {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 179 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout] 184 |                     possible_matches.remove(expired_idx);
[INFO] [stdout]     |                     ------------------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 198 |                 if !self.read_more_characters().await {
[INFO] [stdout]     |                     ---------------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `__awaitee` calls a custom destructor
[INFO] [stdout]     |                     `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/parse_json.rs:387:15
[INFO] [stdout]     |
[INFO] [stdout] 384 |         let next_match = tokenizer.match_token().await?;
[INFO] [stdout]     |             ----------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `next_match` calls a custom destructor
[INFO] [stdout]     |             `next_match` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 387 |         match next_match.token.clone()?.try_into() {
[INFO] [stdout]     |               -------------------------^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 393 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/parse_json.rs:409:15
[INFO] [stdout]     |
[INFO] [stdout] 406 |         let next_match = tokenizer.match_token().await?;
[INFO] [stdout]     |             ----------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `next_match` calls a custom destructor
[INFO] [stdout]     |             `next_match` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 409 |         match next_match.token.clone()?.try_into() {
[INFO] [stdout]     |               -------------------------^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 414 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/parse_json.rs:623:19
[INFO] [stdout]     |
[INFO] [stdout] 620 |             let lookahead = parser.lookahead(0, tokenizer, |tokenizer| json_read_token(tokenizer).boxed()).await;
[INFO] [stdout]     |                             ------------------------------------------------------------------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `__awaitee` calls a custom destructor
[INFO] [stdout]     |                             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 623 |             match lookahead.token.clone().map(|token| token.try_into()) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                   up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 643 |                     parser.ensure_lookahead(0, tokenizer, |tokenizer| json_read_token(tokenizer).boxed()).await;
[INFO] [stdout]     |                     -------------------------------------------------------------------------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 653 |                     parse_value(parser, tokenizer).await?;
[INFO] [stdout]     |                     ------------------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 657 |                     let lookahead = parser.lookahead(0, tokenizer, |tokenizer| json_read_token(tokenizer).boxed()).await;
[INFO] [stdout]     |                                     ------------------------------------------------------------------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                     `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 660 |                     let json_token = lookahead.token.clone().map(|token| token.try_into());
[INFO] [stdout]     |                         ----------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `json_token` calls a custom destructor
[INFO] [stdout]     |                         `json_token` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 686 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/parse_json.rs:775:27
[INFO] [stdout]     |
[INFO] [stdout] 752 |             let lookahead = parser.lookahead(0, tokenizer, |tokenizer| json_read_token(tokenizer).boxed()).await;
[INFO] [stdout]     |                             ------------------------------------------------------------------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `__awaitee` calls a custom destructor
[INFO] [stdout]     |                             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 768 |                     parse_value(parser, tokenizer).await?;
[INFO] [stdout]     |                     ------------------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 772 |                     let lookahead = parser.lookahead(0, tokenizer, |tokenizer| json_read_token(tokenizer).boxed()).await;
[INFO] [stdout]     |                                     ------------------------------------------------------------------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 775 |                     match lookahead.token.clone().map(|token| token.try_into()) {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                           up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 794 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/parse_json.rs:756:19
[INFO] [stdout]     |
[INFO] [stdout] 752 |             let lookahead = parser.lookahead(0, tokenizer, |tokenizer| json_read_token(tokenizer).boxed()).await;
[INFO] [stdout]     |                             ------------------------------------------------------------------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `__awaitee` calls a custom destructor
[INFO] [stdout]     |                             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 756 |             match lookahead.token.clone().map(|token| token.try_into()) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                   up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 768 |                     parse_value(parser, tokenizer).await?;
[INFO] [stdout]     |                     ------------------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 772 |                     let lookahead = parser.lookahead(0, tokenizer, |tokenizer| json_read_token(tokenizer).boxed()).await;
[INFO] [stdout]     |                                     ------------------------------------------------------------------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 796 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> pipe/src/parser.rs:90:19
[INFO] [stdout]    |
[INFO] [stdout] 90 |             match read_token(tokenizer).await { Some(next_token) => {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]    |                   |                     |
[INFO] [stdout]    |                   |                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]    |                   |                     up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    |                   |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                   |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout]    |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    |                   `__awaitee` calls a custom destructor
[INFO] [stdout]    |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 97 |         }
[INFO] [stdout]    |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/commands/command_socket.rs:584:36
[INFO] [stdout]     |
[INFO] [stdout] 584 |         while let Some(response) = responses.next().await {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                    |                |
[INFO] [stdout]     |                                    |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                    |                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                    up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 585 |             self.send_response(response).await?;
[INFO] [stdout]     |             ----------------------------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `__awaitee` calls a custom destructor
[INFO] [stdout]     |             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 586 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/commands/command_program.rs:90:34
[INFO] [stdout]     |
[INFO] [stdout]  90 |       while let Some(connection) = input.next().await {
[INFO] [stdout]     |                      ----------    ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                      |             |            |
[INFO] [stdout]     |                      |             |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                      |             |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                      |             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                      |             up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                      `connection` calls a custom destructor
[INFO] [stdout]     |                      `connection` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  99 | /                 context.send_message(SceneControl::start_program(
[INFO] [stdout] 100 | |                     command_session_id,
[INFO] [stdout] 101 | |                     move |input, context| async move {
[INFO] [stdout] 102 | |                         let command_session = CommandSession::new(socket, command_target);
[INFO] [stdout] 103 | |                         command_session.run(input, context).await;
[INFO] [stdout] 104 | |                     },
[INFO] [stdout] 105 | |                     0)).await.ok();
[INFO] [stdout]     | |                             -
[INFO] [stdout]     | |                             |
[INFO] [stdout]     | |_____________________________`__awaitee` calls a custom destructor
[INFO] [stdout]     |                               `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 108 |       }
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout]     = note: `connection` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `connection` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `connection` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/commands/command_program.rs:359:43
[INFO] [stdout]     |
[INFO] [stdout] 354 |             let mut in_iostream             = None;
[INFO] [stdout]     |                 ---------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `in_iostream` calls a custom destructor
[INFO] [stdout]     |                 `in_iostream` will be dropped later as of Edition 2024
[INFO] [stdout] 355 |             let mut in_background_stream    = None;
[INFO] [stdout]     |                 ------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `in_background_stream` calls a custom destructor
[INFO] [stdout]     |                 `in_background_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 359 |             while let Some(in_response) = in_responses.next().await {
[INFO] [stdout]     |                            -----------    ^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                            |              |                   |
[INFO] [stdout]     |                            |              |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            |              |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            |              this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                            |              up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            `in_response` calls a custom destructor
[INFO] [stdout]     |                            `in_response` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 364 |                     CommandResponse::Message(msg)               => yield_value(CommandResponse::Message(msg)).await,
[INFO] [stdout]     |                                                                    ------------------------------------------------
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                                                    `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 365 |                     CommandResponse::Markdown(msg)              => yield_value(CommandResponse::Markdown(msg)).await,
[INFO] [stdout]     |                                                                    -------------------------------------------------
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                                    `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 366 |                     CommandResponse::InteractiveStream(stream)  => yield_value(CommandResponse::InteractiveStream(stream)).await,
[INFO] [stdout]     |                                                                    -------------------------------------------------------------
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                                                    `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 369 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `in_iostream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `in_background_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `in_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/commands/command_program.rs:383:44
[INFO] [stdout]     |
[INFO] [stdout] 380 |             let mut out_iostream    = None;
[INFO] [stdout]     |                 ----------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `out_iostream` calls a custom destructor
[INFO] [stdout]     |                 `out_iostream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 383 |             while let Some(out_response) = out_responses.next().await {
[INFO] [stdout]     |                            ------------    ^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                            |               |                    |
[INFO] [stdout]     |                            |               |                    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            |               |                    `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            |               this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                            |               up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            `out_response` calls a custom destructor
[INFO] [stdout]     |                            `out_response` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 386 |                     CommandResponse::BackgroundStream(stream)   => yield_value(CommandResponse::BackgroundStream(stream)).await,
[INFO] [stdout]     |                                                                    ------------------------------------------------------------
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                                                    `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 387 |                     CommandResponse::Json(json)                 => yield_value(CommandResponse::Json(json)).await,
[INFO] [stdout]     |                                                                    ----------------------------------------------
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                                    `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 388 |                     CommandResponse::Message(msg)               => yield_value(CommandResponse::Message(msg)).await,
[INFO] [stdout]     |                                                                    ------------------------------------------------
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                                                    `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 389 |                     CommandResponse::Markdown(msg)              => yield_value(CommandResponse::Markdown(msg)).await,
[INFO] [stdout]     |                                                                    -------------------------------------------------
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                                                    `#4` will be dropped later as of Edition 2024
[INFO] [stdout] 390 |                     CommandResponse::InteractiveStream(stream)  => yield_value(CommandResponse::InteractiveStream(stream)).await,
[INFO] [stdout]     |                                                                    -------------------------------------------------------------
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                                                    `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 393 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `out_iostream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `out_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/commands/command_program.rs:547:40
[INFO] [stdout]     |
[INFO] [stdout] 547 |             while let Some(response) = responses.next().await {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                        |                |
[INFO] [stdout]     |                                        |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                        |                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                        this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                        up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 548 |                 yield_value(response).await;
[INFO] [stdout]     |                 ---------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `__awaitee` calls a custom destructor
[INFO] [stdout]     |                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 549 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/commands/command_program.rs:570:23
[INFO] [stdout]     |
[INFO] [stdout] 570 |                 match socket.next_request().await {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                       |                     |
[INFO] [stdout]     |                       |                     this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                       |                     up until Edition 2021 `#8` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                       |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                       up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       `__awaitee` calls a custom destructor
[INFO] [stdout]     |                       `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 573 |                         let command_responses = self.evaluate_request(next_command, &context).await;
[INFO] [stdout]     |                                                 ---------------------------------------------------
[INFO] [stdout]     |                                                 |                                             |
[INFO] [stdout]     |                                                 |                                             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                                 |                                             `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 576 |                         if socket.send_responses(command_responses).await.is_err() {
[INFO] [stdout]     |                            ----------------------------------------------
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                            `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 590 |                         if socket.send_response(CommandResponse::Error(error_message)).await.is_err() {
[INFO] [stdout]     |                            -----------------------------------------------------------------
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                            `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 595 |                         if !socket.flush_after_error().await {
[INFO] [stdout]     |                             --------------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                             `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 601 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/commands/command_program.rs:610:39
[INFO] [stdout]     |
[INFO] [stdout] 610 |             while let Some(request) = input.next().await {
[INFO] [stdout]     |                            -------    ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                            |          |            |
[INFO] [stdout]     |                            |          |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            |          |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            |          this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                            |          up until Edition 2021 `#9` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            `request` calls a custom destructor
[INFO] [stdout]     |                            `request` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 614 |                         variables.lock().unwrap().insert(name, value);
[INFO] [stdout]     |                         -------------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                         `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 619 |                         let value = variables.lock().unwrap().get(&name).cloned();
[INFO] [stdout]     |                                     -------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                     `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 623 |                         if let Ok(mut target) = context.send(target) {
[INFO] [stdout]     |                                   ----------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `target` calls a custom destructor
[INFO] [stdout]     |                                   `target` will be dropped later as of Edition 2024
[INFO] [stdout] 624 |                             target.send(QueryResponse::with_data(CommandVariable(name, value))).await.ok();
[INFO] [stdout]     |                             -------------------------------------------------------------------------
[INFO] [stdout]     |                             |                                                                   |
[INFO] [stdout]     |                             |                                                                   this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                             |                                                                   `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                             `__awaitee` calls a custom destructor
[INFO] [stdout]     |                             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 630 |                         let values = variables.lock().unwrap().iter()
[INFO] [stdout]     |                                      -------------------------
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                      `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 635 |                         if let Ok(mut target) = context.send(target) {
[INFO] [stdout]     |                                   ----------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                   `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 636 |                             target.send(QueryResponse::with_iterator(values)).await.ok();
[INFO] [stdout]     |                             -------------------------------------------------------
[INFO] [stdout]     |                             |                                                 |
[INFO] [stdout]     |                             |                                                 this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                             |                                                 `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                             `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 640 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `request` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `target` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `target` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/standard_json_commands/help.rs:101:35
[INFO] [stdout]     |
[INFO] [stdout]  98 |             let mut supported_commands = supported_commands;
[INFO] [stdout]     |                 ----------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `supported_commands` calls a custom destructor
[INFO] [stdout]     |                 `supported_commands` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 101 |             while let Some(cmd) = supported_commands.next().await {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                   |                         |
[INFO] [stdout]     |                                   |                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                   |                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                   this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                   up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 107 |                     let describe_result = context.spawn_query(ReadCommand::default(), RunCommand::<JsonParameter, CommandResponse>:...
[INFO] [stdout]     |                         ---------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `describe_result` calls a custom destructor
[INFO] [stdout]     |                         `describe_result` will be dropped later as of Edition 2024
[INFO] [stdout] 108 |
[INFO] [stdout] 109 |                     if let Ok(mut describe_result) = describe_result {
[INFO] [stdout]     |                               -------------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                               `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 110 |                         match describe_result.next().await { Some(describe_result) => {
[INFO] [stdout]     |                                                      -----
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                                      `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 123 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/standard_json_commands/help.rs:110:31
[INFO] [stdout]     |
[INFO] [stdout]  98 |             let mut supported_commands = supported_commands;
[INFO] [stdout]     |                 ----------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `supported_commands` calls a custom destructor
[INFO] [stdout]     |                 `supported_commands` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 101 |             while let Some(cmd) = supported_commands.next().await {
[INFO] [stdout]     |                                                             -----
[INFO] [stdout]     |                                                             |
[INFO] [stdout]     |                                                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                             `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 107 |                     let describe_result = context.spawn_query(ReadCommand::default(), RunCommand::<JsonParameter, CommandResponse>:...
[INFO] [stdout]     |                         ---------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `describe_result` calls a custom destructor
[INFO] [stdout]     |                         `describe_result` will be dropped later as of Edition 2024
[INFO] [stdout] 108 |
[INFO] [stdout] 109 |                     if let Ok(mut describe_result) = describe_result {
[INFO] [stdout]     |                               -------------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                               `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 110 |                         match describe_result.next().await { Some(describe_result) => {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                               |                      |
[INFO] [stdout]     |                               |                      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                               |                      `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                               up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 121 |                     }
[INFO] [stdout]     |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/standard_json_commands/help.rs:101:35
[INFO] [stdout]     |
[INFO] [stdout] 101 |             while let Some(cmd) = supported_commands.next().await {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                   |                         |
[INFO] [stdout]     |                                   |                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                   |                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                   this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                   up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 107 |                     let describe_result = context.spawn_query(ReadCommand::default(), RunCommand::<JsonParameter, CommandResponse>:...
[INFO] [stdout]     |                         ---------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `describe_result` calls a custom destructor
[INFO] [stdout]     |                         `describe_result` will be dropped later as of Edition 2024
[INFO] [stdout] 108 |
[INFO] [stdout] 109 |                     if let Ok(mut describe_result) = describe_result {
[INFO] [stdout]     |                               -------------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                               `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 110 |                         match describe_result.next().await { Some(describe_result) => {
[INFO] [stdout]     |                                                      -----
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                                      `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 123 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/standard_json_commands/help.rs:97:41
[INFO] [stdout]     |
[INFO] [stdout]  97 |         if let Ok(supported_commands) = context.spawn_query(ReadCommand::default(), RunCommand::<JsonParameter, CommandResponse>::new((), LIST_COMMANDS, ()), added_program_id) {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                         up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  98 |             let mut supported_commands = supported_commands;
[INFO] [stdout]     |                 ----------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `supported_commands` calls a custom destructor
[INFO] [stdout]     |                 `supported_commands` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 101 |             while let Some(cmd) = supported_commands.next().await {
[INFO] [stdout]     |                                                             -----
[INFO] [stdout]     |                                                             |
[INFO] [stdout]     |                                                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                             `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 107 |                     let describe_result = context.spawn_query(ReadCommand::default(), RunCommand::<JsonParameter, CommandResponse>::new((), DESCRIBE_COMMAND, DescribeCommandReque...
[INFO] [stdout]     |                         ---------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `describe_result` calls a custom destructor
[INFO] [stdout]     |                         `describe_result` will be dropped later as of Edition 2024
[INFO] [stdout] 108 |
[INFO] [stdout] 109 |                     if let Ok(mut describe_result) = describe_result {
[INFO] [stdout]     |                               -------------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                               `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 110 |                         match describe_result.next().await { Some(describe_result) => {
[INFO] [stdout]     |                                                      -----
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                                      `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 125 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> pipe/src/standard_json_commands/list_subprograms.rs:42:42
[INFO] [stdout]    |
[INFO] [stdout] 42 |                 while let Some(update) = updates.next().await {
[INFO] [stdout]    |                                ------    ^^^^^^^^^^^^^^^-----
[INFO] [stdout]    |                                |         |              |
[INFO] [stdout]    |                                |         |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                |         |              `#1` will be dropped later as of Edition 2024
[INFO] [stdout]    |                                |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |                                |         up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    |                                `update` calls a custom destructor
[INFO] [stdout]    |                                `update` will be dropped later as of Edition 2024
[INFO] [stdout] 43 |                     match update {
[INFO] [stdout] 44 |                         SceneUpdate::Started(program_id, input_stream_id) => {
[INFO] [stdout]    |                                                          ---------------
[INFO] [stdout]    |                                                          |
[INFO] [stdout]    |                                                          `input_stream_id` calls a custom destructor
[INFO] [stdout]    |                                                          `input_stream_id` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 55 |                 }
[INFO] [stdout]    |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `update` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `input_stream_id` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> pipe/src/standard_json_commands/list_connections.rs:59:42
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 while let Some(update) = updates.next().await {
[INFO] [stdout]    |                                ------    ^^^^^^^^^^^^^^^-----
[INFO] [stdout]    |                                |         |              |
[INFO] [stdout]    |                                |         |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                |         |              `#1` will be dropped later as of Edition 2024
[INFO] [stdout]    |                                |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |                                |         up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    |                                `update` calls a custom destructor
[INFO] [stdout]    |                                `update` will be dropped later as of Edition 2024
[INFO] [stdout] 60 |                     match update {
[INFO] [stdout] 61 |                         SceneUpdate::Connected(source_id, target_id, stream_id) => {
[INFO] [stdout]    |                                                                      ---------
[INFO] [stdout]    |                                                                      |
[INFO] [stdout]    |                                                                      `stream_id` calls a custom destructor
[INFO] [stdout]    |                                                                      `stream_id` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 75 |                 }
[INFO] [stdout]    |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `update` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `stream_id` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/standard_json_commands/query.rs:59:37
[INFO] [stdout]     |
[INFO] [stdout]  58 |             let mut input = input;
[INFO] [stdout]     |                 ---------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `input` calls a custom destructor
[INFO] [stdout]     |                 `input` will be dropped later as of Edition 2024
[INFO] [stdout]  59 |             if let Some(response) = input.next().await {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                     up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  64 |         }, 20)).await.ok();
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `input` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/input_stream.rs:531:1
[INFO] [stdout]     |
[INFO] [stdout] 531 | impl<TMessage> Drop for InputStream<TMessage> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/internal_socket.rs:146:19
[INFO] [stdout]     |
[INFO] [stdout] 146 |             match TTargetSink::poll_ready(self.target.as_mut(), cx) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 157 |                     match TTargetSink::start_send(self.target.as_mut(), buf[num_written]) {
[INFO] [stdout]     |                           ---------------------------------------------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                           `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 171 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/internal_socket.rs:240:35
[INFO] [stdout]     |
[INFO] [stdout] 240 | ...   while let Some(request) = input.next().await {
[INFO] [stdout]     |                      -------    ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                      |          |            |
[INFO] [stdout]     |                      |          |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                      |          |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                      |          this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                      |          up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                      `request` calls a custom destructor
[INFO] [stdout]     |                      `request` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 289 | ...               context.send_message(SocketMessage::<TInputStream::Item, TOutputMessage>::Connection(socket_connection)).await.ok();
[INFO] [stdout]     |                   --------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 292 | ...   }
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `request` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/commands/command_program.rs:191:48
[INFO] [stdout]     |
[INFO] [stdout] 191 |                     while let Some(response) = request_result.next().await {
[INFO] [stdout]     |                                    --------    ^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                    |           |                     |
[INFO] [stdout]     |                                    |           |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                    |           |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                    |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                    |           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                    `response` calls a custom destructor
[INFO] [stdout]     |                                    `response` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 205 |                     }
[INFO] [stdout]     |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/standard_json_commands/help.rs:153:48
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 while let Some(command_help) = input.next().await {
[INFO] [stdout]     |                                ------------    ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                |               |            |
[INFO] [stdout]     |                                |               |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                |               |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                |               this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                |               up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                `command_help` calls a custom destructor
[INFO] [stdout]     |                                `command_help` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 167 |                         CommandHelp::Query(target, topic) => {
[INFO] [stdout]     |                                            ------
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            `target` calls a custom destructor
[INFO] [stdout]     |                                            `target` will be dropped later as of Edition 2024
[INFO] [stdout] 168 |                             // Update the list of known commands
[INFO] [stdout] 169 |                             let new_commands = read_new_commands(&context, &mut subprograms).await;
[INFO] [stdout]     |                                                ---------------------------------------------------
[INFO] [stdout]     |                                                |
[INFO] [stdout]     |                                                `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                                `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 210 |                             if let Ok(mut target) = context.send(target) {
[INFO] [stdout]     |                                       ----------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 211 |                                 target.send(QueryResponse::with_data(HelpMarkdown(markdown))).await.ok();
[INFO] [stdout]     |                                 -------------------------------------------------------------------
[INFO] [stdout]     |                                 |                                                             |
[INFO] [stdout]     |                                 |                                                             this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                 |                                                             `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                 `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 215 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_help` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating scene/tests/guest_tests.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/socket.rs:175:34
[INFO] [stdout]     |
[INFO] [stdout] 175 |     while let Some(next_event) = input.next().await {
[INFO] [stdout]     |                    ----------    ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                    |             |            |
[INFO] [stdout]     |                    |             |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                    |             |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    |             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                    |             up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    `next_event` calls a custom destructor
[INFO] [stdout]     |                    `next_event` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 221 |                 context.send_message(socket_connection).await.ok();
[INFO] [stdout]     |                 ---------------------------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `__awaitee` calls a custom destructor
[INFO] [stdout]     |                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 224 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/tokenizer.rs:163:27
[INFO] [stdout]     |
[INFO] [stdout] 163 |                     match matcher.try_match(&self.lookahead_chars, eof) {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 179 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout] 184 |                     possible_matches.remove(expired_idx);
[INFO] [stdout]     |                     ------------------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 198 |                 if !self.read_more_characters().await {
[INFO] [stdout]     |                     ---------------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `__awaitee` calls a custom destructor
[INFO] [stdout]     |                     `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/parse_json.rs:387:15
[INFO] [stdout]     |
[INFO] [stdout] 384 |         let next_match = tokenizer.match_token().await?;
[INFO] [stdout]     |             ----------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `next_match` calls a custom destructor
[INFO] [stdout]     |             `next_match` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 387 |         match next_match.token.clone()?.try_into() {
[INFO] [stdout]     |               -------------------------^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 393 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/parse_json.rs:409:15
[INFO] [stdout]     |
[INFO] [stdout] 406 |         let next_match = tokenizer.match_token().await?;
[INFO] [stdout]     |             ----------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `next_match` calls a custom destructor
[INFO] [stdout]     |             `next_match` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 409 |         match next_match.token.clone()?.try_into() {
[INFO] [stdout]     |               -------------------------^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 414 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/parse_json.rs:623:19
[INFO] [stdout]     |
[INFO] [stdout] 620 |             let lookahead = parser.lookahead(0, tokenizer, |tokenizer| json_read_token(tokenizer).boxed()).await;
[INFO] [stdout]     |                             ------------------------------------------------------------------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `__awaitee` calls a custom destructor
[INFO] [stdout]     |                             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 623 |             match lookahead.token.clone().map(|token| token.try_into()) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                   up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 643 |                     parser.ensure_lookahead(0, tokenizer, |tokenizer| json_read_token(tokenizer).boxed()).await;
[INFO] [stdout]     |                     -------------------------------------------------------------------------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 653 |                     parse_value(parser, tokenizer).await?;
[INFO] [stdout]     |                     ------------------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 657 |                     let lookahead = parser.lookahead(0, tokenizer, |tokenizer| json_read_token(tokenizer).boxed()).await;
[INFO] [stdout]     |                                     ------------------------------------------------------------------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                     `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 660 |                     let json_token = lookahead.token.clone().map(|token| token.try_into());
[INFO] [stdout]     |                         ----------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `json_token` calls a custom destructor
[INFO] [stdout]     |                         `json_token` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 686 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/parse_json.rs:775:27
[INFO] [stdout]     |
[INFO] [stdout] 752 |             let lookahead = parser.lookahead(0, tokenizer, |tokenizer| json_read_token(tokenizer).boxed()).await;
[INFO] [stdout]     |                             ------------------------------------------------------------------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `__awaitee` calls a custom destructor
[INFO] [stdout]     |                             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 768 |                     parse_value(parser, tokenizer).await?;
[INFO] [stdout]     |                     ------------------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 772 |                     let lookahead = parser.lookahead(0, tokenizer, |tokenizer| json_read_token(tokenizer).boxed()).await;
[INFO] [stdout]     |                                     ------------------------------------------------------------------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 775 |                     match lookahead.token.clone().map(|token| token.try_into()) {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                           up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 794 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/parse_json.rs:756:19
[INFO] [stdout]     |
[INFO] [stdout] 752 |             let lookahead = parser.lookahead(0, tokenizer, |tokenizer| json_read_token(tokenizer).boxed()).await;
[INFO] [stdout]     |                             ------------------------------------------------------------------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `__awaitee` calls a custom destructor
[INFO] [stdout]     |                             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 756 |             match lookahead.token.clone().map(|token| token.try_into()) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                   up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 768 |                     parse_value(parser, tokenizer).await?;
[INFO] [stdout]     |                     ------------------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 772 |                     let lookahead = parser.lookahead(0, tokenizer, |tokenizer| json_read_token(tokenizer).boxed()).await;
[INFO] [stdout]     |                                     ------------------------------------------------------------------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 796 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> pipe/src/parser.rs:90:19
[INFO] [stdout]    |
[INFO] [stdout] 90 |             match read_token(tokenizer).await { Some(next_token) => {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]    |                   |                     |
[INFO] [stdout]    |                   |                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]    |                   |                     up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    |                   |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                   |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout]    |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    |                   `__awaitee` calls a custom destructor
[INFO] [stdout]    |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 97 |         }
[INFO] [stdout]    |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/commands/command_socket.rs:584:36
[INFO] [stdout]     |
[INFO] [stdout] 584 |         while let Some(response) = responses.next().await {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                    |                |
[INFO] [stdout]     |                                    |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                    |                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                    up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 585 |             self.send_response(response).await?;
[INFO] [stdout]     |             ----------------------------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `__awaitee` calls a custom destructor
[INFO] [stdout]     |             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 586 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/commands/command_program.rs:90:34
[INFO] [stdout]     |
[INFO] [stdout]  90 |       while let Some(connection) = input.next().await {
[INFO] [stdout]     |                      ----------    ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                      |             |            |
[INFO] [stdout]     |                      |             |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                      |             |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                      |             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                      |             up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                      `connection` calls a custom destructor
[INFO] [stdout]     |                      `connection` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  99 | /                 context.send_message(SceneControl::start_program(
[INFO] [stdout] 100 | |                     command_session_id,
[INFO] [stdout] 101 | |                     move |input, context| async move {
[INFO] [stdout] 102 | |                         let command_session = CommandSession::new(socket, command_target);
[INFO] [stdout] 103 | |                         command_session.run(input, context).await;
[INFO] [stdout] 104 | |                     },
[INFO] [stdout] 105 | |                     0)).await.ok();
[INFO] [stdout]     | |                             -
[INFO] [stdout]     | |                             |
[INFO] [stdout]     | |_____________________________`__awaitee` calls a custom destructor
[INFO] [stdout]     |                               `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 108 |       }
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout]     = note: `connection` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `connection` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `connection` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/commands/command_program.rs:359:43
[INFO] [stdout]     |
[INFO] [stdout] 354 |             let mut in_iostream             = None;
[INFO] [stdout]     |                 ---------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `in_iostream` calls a custom destructor
[INFO] [stdout]     |                 `in_iostream` will be dropped later as of Edition 2024
[INFO] [stdout] 355 |             let mut in_background_stream    = None;
[INFO] [stdout]     |                 ------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `in_background_stream` calls a custom destructor
[INFO] [stdout]     |                 `in_background_stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 359 |             while let Some(in_response) = in_responses.next().await {
[INFO] [stdout]     |                            -----------    ^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                            |              |                   |
[INFO] [stdout]     |                            |              |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            |              |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            |              this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                            |              up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            `in_response` calls a custom destructor
[INFO] [stdout]     |                            `in_response` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 364 |                     CommandResponse::Message(msg)               => yield_value(CommandResponse::Message(msg)).await,
[INFO] [stdout]     |                                                                    ------------------------------------------------
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                                                    `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 365 |                     CommandResponse::Markdown(msg)              => yield_value(CommandResponse::Markdown(msg)).await,
[INFO] [stdout]     |                                                                    -------------------------------------------------
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                                    `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 366 |                     CommandResponse::InteractiveStream(stream)  => yield_value(CommandResponse::InteractiveStream(stream)).await,
[INFO] [stdout]     |                                                                    -------------------------------------------------------------
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                                                    `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 369 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `in_iostream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `in_background_stream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `in_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/commands/command_program.rs:383:44
[INFO] [stdout]     |
[INFO] [stdout] 380 |             let mut out_iostream    = None;
[INFO] [stdout]     |                 ----------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `out_iostream` calls a custom destructor
[INFO] [stdout]     |                 `out_iostream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 383 |             while let Some(out_response) = out_responses.next().await {
[INFO] [stdout]     |                            ------------    ^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                            |               |                    |
[INFO] [stdout]     |                            |               |                    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            |               |                    `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            |               this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                            |               up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            `out_response` calls a custom destructor
[INFO] [stdout]     |                            `out_response` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 386 |                     CommandResponse::BackgroundStream(stream)   => yield_value(CommandResponse::BackgroundStream(stream)).await,
[INFO] [stdout]     |                                                                    ------------------------------------------------------------
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                                                    `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 387 |                     CommandResponse::Json(json)                 => yield_value(CommandResponse::Json(json)).await,
[INFO] [stdout]     |                                                                    ----------------------------------------------
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                                    `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 388 |                     CommandResponse::Message(msg)               => yield_value(CommandResponse::Message(msg)).await,
[INFO] [stdout]     |                                                                    ------------------------------------------------
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                                                    `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 389 |                     CommandResponse::Markdown(msg)              => yield_value(CommandResponse::Markdown(msg)).await,
[INFO] [stdout]     |                                                                    -------------------------------------------------
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                                                    `#4` will be dropped later as of Edition 2024
[INFO] [stdout] 390 |                     CommandResponse::InteractiveStream(stream)  => yield_value(CommandResponse::InteractiveStream(stream)).await,
[INFO] [stdout]     |                                                                    -------------------------------------------------------------
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                                                    `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 393 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `out_iostream` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `out_response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/commands/command_program.rs:547:40
[INFO] [stdout]     |
[INFO] [stdout] 547 |             while let Some(response) = responses.next().await {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                        |                |
[INFO] [stdout]     |                                        |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                        |                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                        this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                        up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 548 |                 yield_value(response).await;
[INFO] [stdout]     |                 ---------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `__awaitee` calls a custom destructor
[INFO] [stdout]     |                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 549 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/commands/command_program.rs:570:23
[INFO] [stdout]     |
[INFO] [stdout] 570 |                 match socket.next_request().await {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                       |                     |
[INFO] [stdout]     |                       |                     this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                       |                     up until Edition 2021 `#8` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                       |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                       up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       `__awaitee` calls a custom destructor
[INFO] [stdout]     |                       `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 573 |                         let command_responses = self.evaluate_request(next_command, &context).await;
[INFO] [stdout]     |                                                 ---------------------------------------------------
[INFO] [stdout]     |                                                 |                                             |
[INFO] [stdout]     |                                                 |                                             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                                 |                                             `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 576 |                         if socket.send_responses(command_responses).await.is_err() {
[INFO] [stdout]     |                            ----------------------------------------------
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                            `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 590 |                         if socket.send_response(CommandResponse::Error(error_message)).await.is_err() {
[INFO] [stdout]     |                            -----------------------------------------------------------------
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                            `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 595 |                         if !socket.flush_after_error().await {
[INFO] [stdout]     |                             --------------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                             `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 601 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/commands/command_program.rs:610:39
[INFO] [stdout]     |
[INFO] [stdout] 610 |             while let Some(request) = input.next().await {
[INFO] [stdout]     |                            -------    ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                            |          |            |
[INFO] [stdout]     |                            |          |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            |          |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            |          this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                            |          up until Edition 2021 `#9` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            `request` calls a custom destructor
[INFO] [stdout]     |                            `request` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 614 |                         variables.lock().unwrap().insert(name, value);
[INFO] [stdout]     |                         -------------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                         `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 619 |                         let value = variables.lock().unwrap().get(&name).cloned();
[INFO] [stdout]     |                                     -------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                     `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 623 |                         if let Ok(mut target) = context.send(target) {
[INFO] [stdout]     |                                   ----------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `target` calls a custom destructor
[INFO] [stdout]     |                                   `target` will be dropped later as of Edition 2024
[INFO] [stdout] 624 |                             target.send(QueryResponse::with_data(CommandVariable(name, value))).await.ok();
[INFO] [stdout]     |                             -------------------------------------------------------------------------
[INFO] [stdout]     |                             |                                                                   |
[INFO] [stdout]     |                             |                                                                   this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                             |                                                                   `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                             `__awaitee` calls a custom destructor
[INFO] [stdout]     |                             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 630 |                         let values = variables.lock().unwrap().iter()
[INFO] [stdout]     |                                      -------------------------
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                      `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 635 |                         if let Ok(mut target) = context.send(target) {
[INFO] [stdout]     |                                   ----------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                   `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 636 |                             target.send(QueryResponse::with_iterator(values)).await.ok();
[INFO] [stdout]     |                             -------------------------------------------------------
[INFO] [stdout]     |                             |                                                 |
[INFO] [stdout]     |                             |                                                 this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                             |                                                 `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                             `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 640 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `request` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `target` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `target` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/standard_json_commands/help.rs:101:35
[INFO] [stdout]     |
[INFO] [stdout]  98 |             let mut supported_commands = supported_commands;
[INFO] [stdout]     |                 ----------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `supported_commands` calls a custom destructor
[INFO] [stdout]     |                 `supported_commands` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 101 |             while let Some(cmd) = supported_commands.next().await {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                   |                         |
[INFO] [stdout]     |                                   |                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                   |                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                   this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                   up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 107 |                     let describe_result = context.spawn_query(ReadCommand::default(), RunCommand::<JsonParameter, CommandResponse>:...
[INFO] [stdout]     |                         ---------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `describe_result` calls a custom destructor
[INFO] [stdout]     |                         `describe_result` will be dropped later as of Edition 2024
[INFO] [stdout] 108 |
[INFO] [stdout] 109 |                     if let Ok(mut describe_result) = describe_result {
[INFO] [stdout]     |                               -------------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                               `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 110 |                         match describe_result.next().await { Some(describe_result) => {
[INFO] [stdout]     |                                                      -----
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                                      `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 123 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/standard_json_commands/help.rs:110:31
[INFO] [stdout]     |
[INFO] [stdout]  98 |             let mut supported_commands = supported_commands;
[INFO] [stdout]     |                 ----------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `supported_commands` calls a custom destructor
[INFO] [stdout]     |                 `supported_commands` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 101 |             while let Some(cmd) = supported_commands.next().await {
[INFO] [stdout]     |                                                             -----
[INFO] [stdout]     |                                                             |
[INFO] [stdout]     |                                                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                             `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 107 |                     let describe_result = context.spawn_query(ReadCommand::default(), RunCommand::<JsonParameter, CommandResponse>:...
[INFO] [stdout]     |                         ---------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `describe_result` calls a custom destructor
[INFO] [stdout]     |                         `describe_result` will be dropped later as of Edition 2024
[INFO] [stdout] 108 |
[INFO] [stdout] 109 |                     if let Ok(mut describe_result) = describe_result {
[INFO] [stdout]     |                               -------------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                               `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 110 |                         match describe_result.next().await { Some(describe_result) => {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                               |                      |
[INFO] [stdout]     |                               |                      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                               |                      `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                               up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 121 |                     }
[INFO] [stdout]     |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/standard_json_commands/help.rs:101:35
[INFO] [stdout]     |
[INFO] [stdout] 101 |             while let Some(cmd) = supported_commands.next().await {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                   |                         |
[INFO] [stdout]     |                                   |                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                   |                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                   this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                   up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 107 |                     let describe_result = context.spawn_query(ReadCommand::default(), RunCommand::<JsonParameter, CommandResponse>:...
[INFO] [stdout]     |                         ---------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `describe_result` calls a custom destructor
[INFO] [stdout]     |                         `describe_result` will be dropped later as of Edition 2024
[INFO] [stdout] 108 |
[INFO] [stdout] 109 |                     if let Ok(mut describe_result) = describe_result {
[INFO] [stdout]     |                               -------------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                               `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 110 |                         match describe_result.next().await { Some(describe_result) => {
[INFO] [stdout]     |                                                      -----
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                                      `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 123 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/standard_json_commands/help.rs:97:41
[INFO] [stdout]     |
[INFO] [stdout]  97 |         if let Ok(supported_commands) = context.spawn_query(ReadCommand::default(), RunCommand::<JsonParameter, CommandResponse>::new((), LIST_COMMANDS, ()), added_program_id) {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                         up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  98 |             let mut supported_commands = supported_commands;
[INFO] [stdout]     |                 ----------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `supported_commands` calls a custom destructor
[INFO] [stdout]     |                 `supported_commands` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 101 |             while let Some(cmd) = supported_commands.next().await {
[INFO] [stdout]     |                                                             -----
[INFO] [stdout]     |                                                             |
[INFO] [stdout]     |                                                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                             `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 107 |                     let describe_result = context.spawn_query(ReadCommand::default(), RunCommand::<JsonParameter, CommandResponse>::new((), DESCRIBE_COMMAND, DescribeCommandReque...
[INFO] [stdout]     |                         ---------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `describe_result` calls a custom destructor
[INFO] [stdout]     |                         `describe_result` will be dropped later as of Edition 2024
[INFO] [stdout] 108 |
[INFO] [stdout] 109 |                     if let Ok(mut describe_result) = describe_result {
[INFO] [stdout]     |                               -------------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                               `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 110 |                         match describe_result.next().await { Some(describe_result) => {
[INFO] [stdout]     |                                                      -----
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                                      `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 125 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> pipe/src/standard_json_commands/list_subprograms.rs:42:42
[INFO] [stdout]    |
[INFO] [stdout] 42 |                 while let Some(update) = updates.next().await {
[INFO] [stdout]    |                                ------    ^^^^^^^^^^^^^^^-----
[INFO] [stdout]    |                                |         |              |
[INFO] [stdout]    |                                |         |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                |         |              `#1` will be dropped later as of Edition 2024
[INFO] [stdout]    |                                |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |                                |         up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    |                                `update` calls a custom destructor
[INFO] [stdout]    |                                `update` will be dropped later as of Edition 2024
[INFO] [stdout] 43 |                     match update {
[INFO] [stdout] 44 |                         SceneUpdate::Started(program_id, input_stream_id) => {
[INFO] [stdout]    |                                                          ---------------
[INFO] [stdout]    |                                                          |
[INFO] [stdout]    |                                                          `input_stream_id` calls a custom destructor
[INFO] [stdout]    |                                                          `input_stream_id` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 55 |                 }
[INFO] [stdout]    |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `update` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `input_stream_id` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> pipe/src/standard_json_commands/list_connections.rs:59:42
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 while let Some(update) = updates.next().await {
[INFO] [stdout]    |                                ------    ^^^^^^^^^^^^^^^-----
[INFO] [stdout]    |                                |         |              |
[INFO] [stdout]    |                                |         |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                |         |              `#1` will be dropped later as of Edition 2024
[INFO] [stdout]    |                                |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |                                |         up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    |                                `update` calls a custom destructor
[INFO] [stdout]    |                                `update` will be dropped later as of Edition 2024
[INFO] [stdout] 60 |                     match update {
[INFO] [stdout] 61 |                         SceneUpdate::Connected(source_id, target_id, stream_id) => {
[INFO] [stdout]    |                                                                      ---------
[INFO] [stdout]    |                                                                      |
[INFO] [stdout]    |                                                                      `stream_id` calls a custom destructor
[INFO] [stdout]    |                                                                      `stream_id` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 75 |                 }
[INFO] [stdout]    |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `update` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `stream_id` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/standard_json_commands/query.rs:59:37
[INFO] [stdout]     |
[INFO] [stdout]  58 |             let mut input = input;
[INFO] [stdout]     |                 ---------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `input` calls a custom destructor
[INFO] [stdout]     |                 `input` will be dropped later as of Edition 2024
[INFO] [stdout]  59 |             if let Some(response) = input.next().await {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                     up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  64 |         }, 20)).await.ok();
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `input` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/input_stream.rs:531:1
[INFO] [stdout]     |
[INFO] [stdout] 531 | impl<TMessage> Drop for InputStream<TMessage> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/internal_socket.rs:146:19
[INFO] [stdout]     |
[INFO] [stdout] 146 |             match TTargetSink::poll_ready(self.target.as_mut(), cx) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 157 |                     match TTargetSink::start_send(self.target.as_mut(), buf[num_written]) {
[INFO] [stdout]     |                           ---------------------------------------------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                           `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 171 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/internal_socket.rs:240:35
[INFO] [stdout]     |
[INFO] [stdout] 240 | ...   while let Some(request) = input.next().await {
[INFO] [stdout]     |                      -------    ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                      |          |            |
[INFO] [stdout]     |                      |          |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                      |          |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                      |          this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                      |          up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                      `request` calls a custom destructor
[INFO] [stdout]     |                      `request` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 289 | ...               context.send_message(SocketMessage::<TInputStream::Item, TOutputMessage>::Connection(socket_connection)).await.ok();
[INFO] [stdout]     |                   --------------------------------------------------------------------------------------------------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 292 | ...   }
[INFO] [stdout]     |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `request` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/commands/command_program.rs:191:48
[INFO] [stdout]     |
[INFO] [stdout] 191 |                     while let Some(response) = request_result.next().await {
[INFO] [stdout]     |                                    --------    ^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                    |           |                     |
[INFO] [stdout]     |                                    |           |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                    |           |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                    |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                    |           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                    `response` calls a custom destructor
[INFO] [stdout]     |                                    `response` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 205 |                     }
[INFO] [stdout]     |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/src/standard_json_commands/help.rs:153:48
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 while let Some(command_help) = input.next().await {
[INFO] [stdout]     |                                ------------    ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                |               |            |
[INFO] [stdout]     |                                |               |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                |               |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                |               this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                |               up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                `command_help` calls a custom destructor
[INFO] [stdout]     |                                `command_help` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 167 |                         CommandHelp::Query(target, topic) => {
[INFO] [stdout]     |                                            ------
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            `target` calls a custom destructor
[INFO] [stdout]     |                                            `target` will be dropped later as of Edition 2024
[INFO] [stdout] 168 |                             // Update the list of known commands
[INFO] [stdout] 169 |                             let new_commands = read_new_commands(&context, &mut subprograms).await;
[INFO] [stdout]     |                                                ---------------------------------------------------
[INFO] [stdout]     |                                                |
[INFO] [stdout]     |                                                `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                                `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 210 |                             if let Ok(mut target) = context.send(target) {
[INFO] [stdout]     |                                       ----------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 211 |                                 target.send(QueryResponse::with_data(HelpMarkdown(markdown))).await.ok();
[INFO] [stdout]     |                                 -------------------------------------------------------------------
[INFO] [stdout]     |                                 |                                                             |
[INFO] [stdout]     |                                 |                                                             this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                 |                                                             `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                 `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 215 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `command_help` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `target` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating scene/tests/serialization_tests.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/tests/guest/function_tests.rs:124:41
[INFO] [stdout]     |
[INFO] [stdout] 124 |         while let Some(next_function) = input.next().await {
[INFO] [stdout]     |                        -------------    ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                        |                |            |
[INFO] [stdout]     |                        |                |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                        |                |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                        |                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                        |                up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                        `next_function` calls a custom destructor
[INFO] [stdout]     |                        `next_function` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 130 |             (next_function.0)(hello).await;
[INFO] [stdout]     |             ------------------------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `__awaitee` calls a custom destructor
[INFO] [stdout]     |             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 131 |             println!("Calling with 'goodbyte'");
[INFO] [stdout] 132 |             (next_function.0)(goodbyte).await;
[INFO] [stdout]     |             ---------------------------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 133 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_function` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/tests/guest/function_tests.rs:164:41
[INFO] [stdout]     |
[INFO] [stdout] 164 |         while let Some(next_function) = input.next().await {
[INFO] [stdout]     |                        -------------    ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                        |                |            |
[INFO] [stdout]     |                        |                |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                        |                |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                        |                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                        |                up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                        `next_function` calls a custom destructor
[INFO] [stdout]     |                        `next_function` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 170 |             (next_function.0)(hello).await;
[INFO] [stdout]     |             ------------------------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `__awaitee` calls a custom destructor
[INFO] [stdout]     |             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 171 |             println!("Calling with 'goodbyte'");
[INFO] [stdout] 172 |             (next_function.0)(goodbyte).await;
[INFO] [stdout]     |             ---------------------------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 173 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_function` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating scene/examples/input_prompt.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/tests/serialization_tests.rs:213:43
[INFO] [stdout]     |
[INFO] [stdout] 213 |                 while let Some(message) = input_stream.next().await {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                           |                   |
[INFO] [stdout]     |                                           |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                           |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                           this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                           up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 214 |                     let mut response: QueryResponse<SerializedMessage<serde_json::Value>> = message;
[INFO] [stdout]     |                         ------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `response` calls a custom destructor
[INFO] [stdout]     |                         `response` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 219 |                         context.send(deserialized_receiver).unwrap()
[INFO] [stdout]     |                         --------------------------------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                         `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 224 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/tests/serialization_tests.rs:283:39
[INFO] [stdout]     |
[INFO] [stdout] 283 |             while let Some(message) = input_stream.next().await {
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                       |                   |
[INFO] [stdout]     |                                       |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                       |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                       up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 284 |                 let mut response: QueryResponse<TestMessage> = message;
[INFO] [stdout]     |                     ------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `response` calls a custom destructor
[INFO] [stdout]     |                     `response` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 289 |                     context.send(test_program).unwrap()
[INFO] [stdout]     |                     -----------------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 294 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `response` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating scene/tests/test_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating scene/tests/subprogram_id_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating pipe/tests/command_program_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating pipe/examples/command_pipe.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating pipe/tests/standard_command_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating pipe/tests/internal_socket_tests.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/tests/standard_command_tests.rs:236:31
[INFO] [stdout]     |
[INFO] [stdout] 236 |         while let Some(req) = input.next().await {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                               |            |
[INFO] [stdout]     |                               |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                               |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 237 |             let req: Subscribe<SubscribeCommandTestMessage> = req;
[INFO] [stdout]     |                 ---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `req` calls a custom destructor
[INFO] [stdout]     |                 `req` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 240 |             subscription.send_round_robin(SubscribeCommandTestMessage { text: "Test".into() }).await.ok();
[INFO] [stdout]     |             ----------------------------------------------------------------------------------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `__awaitee` calls a custom destructor
[INFO] [stdout]     |             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 241 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `req` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> pipe/tests/standard_command_tests.rs:283:31
[INFO] [stdout]     |
[INFO] [stdout] 283 |         while let Some(req) = input.next().await {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                               |            |
[INFO] [stdout]     |                               |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                               |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                               up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 284 |             let req: Query<QueryCommandTestMessage> = req;
[INFO] [stdout]     |                 ---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `req` calls a custom destructor
[INFO] [stdout]     |                 `req` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 287 |             let mut sender  = context.send(req.target()).unwrap();
[INFO] [stdout]     |                 ----------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `sender` calls a custom destructor
[INFO] [stdout]     |                 `sender` will be dropped later as of Edition 2024
[INFO] [stdout] 288 |             sender.send(response).await.ok();
[INFO] [stdout]     |             ---------------------------
[INFO] [stdout]     |             |                     |
[INFO] [stdout]     |             |                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |             |                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |             `__awaitee` calls a custom destructor
[INFO] [stdout]     |             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 289 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `req` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `sender` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `sender` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/sync.rs:3472:0
[INFO] [stdout] note: `sender` invokes this custom destructor
[INFO] [stdout]    --> scene/src/host/output_sink.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | / impl<TMessage> Drop for OutputSinkTarget<TMessage>
[INFO] [stdout]  89 | | where
[INFO] [stdout]  90 | |     TMessage: 'static + Send
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating scene/examples/hello_world.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating scene/tests/launcher_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating scene/tests/filter_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating scene/tests/control_program_tests.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/tests/control_program_tests.rs:214:37
[INFO] [stdout]     |
[INFO] [stdout] 214 |             while let Some(input) = input.next().await {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                     |            |
[INFO] [stdout]     |                                     |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                     |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                     up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 226 |                 send_updates.lock().unwrap().push(input);
[INFO] [stdout]     |                 ----------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 231 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating scene/tests/immediate_mode_tests.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/tests/control_program_tests.rs:296:37
[INFO] [stdout]     |
[INFO] [stdout] 296 |             while let Some(input) = input.next().await {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                     |            |
[INFO] [stdout]     |                                     |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                     |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                     up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 308 |                 send_updates.lock().unwrap().push(input);
[INFO] [stdout]     |                 ----------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 313 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/tests/control_program_tests.rs:421:40
[INFO] [stdout]     |
[INFO] [stdout] 421 |         while let Some(next_message) = input.next().await {
[INFO] [stdout]     |                        ------------    ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                        |               |            |
[INFO] [stdout]     |                        |               |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                        |               |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                        |               this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                        |               up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                        `next_message` calls a custom destructor
[INFO] [stdout]     |                        `next_message` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 425 |                     if *source == send_messages && target_stream.as_message_type() == StreamId::with_message_type::<TestMessage>() {
[INFO] [stdout]     |                                                    -------------------------------    --------------------------------------------
[INFO] [stdout]     |                                                    |                                  |
[INFO] [stdout]     |                                                    |                                  this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                                    |                                  `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                                    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                    `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 428 |                         test_program.send(ReceivedUpdate(next_message.clone())).await.unwrap();
[INFO] [stdout]     |                         -------------------------------------------------------------
[INFO] [stdout]     |                         |                                                       |
[INFO] [stdout]     |                         |                                                       this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                         |                                                       `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                         `__awaitee` calls a custom destructor
[INFO] [stdout]     |                         `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 434 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `next_message` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/tests/control_program_tests.rs:513:38
[INFO] [stdout]     |
[INFO] [stdout] 513 |             while let Some(update) = input.next().await {
[INFO] [stdout]     |                            ------    ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                            |         |            |
[INFO] [stdout]     |                            |         |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            |         |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                            |         up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            `update` calls a custom destructor
[INFO] [stdout]     |                            `update` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 523 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `update` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> scene/tests/control_program_tests.rs:561:38
[INFO] [stdout]     |
[INFO] [stdout] 561 |             while let Some(result) = query.next().await {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                      |            |
[INFO] [stdout]     |                                      |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                      |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                      this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                      up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 564 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[WARN] too many lines in the log, truncating it
